Z 學院元宇宙 Unity 開發班Week6心得 — NFT捕捉

SharKevin
The Z Institute
Published in
Jul 7, 2023

在 Z 學院元宇宙 Unity 開發班的最後一週課程中,我們進行了前幾週所學技能的大整合。這一路走來,我們遇到了不少 Web3 和 SDK 的整合問題,但幸好有 Z 學院的助教們給予了我們協助,成功地解決了這些問題。在這個星期,我們使用 Unity 在 Google Map 上捕捉屬於自己的 NFT 怪獸,並將怪獸的產地資訊與智能合約同步到 Firebase 資料庫,最終完成了我們的 web3 致敬PokemonGO 遊戲!

NFT 怪獸與GoogleMap的產地

製作一個類似NFT PokemonGO的體驗其實流程非常簡單,只需要5個步驟:

  1. 使用OnlineMap拖曳地圖,找到適合投放NFT的地點,並儲存相關經緯度資訊。
  2. 透過Alchemy API取得錢包資訊,列出你所擁有的所有NFT在清單畫面上。
  3. 從清單中選擇你想要投放的NFT,並為它搭配對應的怪獸外觀,然後生成怪獸的遊戲物件Prefab。
  4. 刷新地圖遊戲畫面,NFT怪獸會根據你出現在你在地圖上指定的位置。
  5. 我們可以製作一個新的場景與我們的怪獸進行互動,透過點擊地圖上的怪獸,呼叫智能合約後跳轉到該場景進行對戰。

本堂課的例子其實在點擊後即將NFT領取,當然你可以像是PokemonGO班丟出寶貝球,或是像是RPG遊戲一般戰鬥擊倒怪獸。

NFT 怪獸與 Firebase的同步

在多人遊戲中首重的就是與他人的資訊進行同步,不管是要投放、收集怪獸NFT都需要與資料庫互動。課程中我們用Json Object定義了相對應的怪獸資料結構:

 "nfts": {
"available": {
"-NZcu8RNeXP1QFWYa566": {
"displayImageId": "0",
"position": {
"lat": 25.044431686401367,
"lng": 121.5265121459961
},
"title": "UNI EVENT #6636"
}
}
}

在”available”下列出了可用的NFT怪獸的顯示圖片和地圖經緯度。每次投放怪獸時,我們就新增一筆資料到Firebase中;相反地,當有玩家捕捉走該NFT怪獸時,我們就從Firebase中移除相應的資料。

這樣,我們就實現了NFT怪獸與Google Map以及Firebase的完美整合。透過在地圖上捕捉NFT怪獸的方式,我們可以讓玩家在真實世界中尋找並收集自己喜愛的怪獸。同時,使用Firebase作為資料庫,我們能夠實現多人遊戲中的資訊同步,讓玩家們能夠共享彼此的遊戲體驗。

--

--