メインコンテンツへスキップ

読了時間:2分

概要

web3.unity は、Chainsafeチームによって開発された強力なオープンソースのゲーム用 SDK です。これにより、Unity エンジンで作成したゲームにブロックチェーン機能を追加することができます。このガイドでは、Unity エディタで web3.unity を設定する方法、独自のブロックチェーン dApp を作成する方法、そして web3.unity ゲームに NFT ミント機能を追加する方法について学びます。

YouTubeチャンネルを登録して、その他の動画もぜひご覧ください!

web3.unity の設定

UnityエディタとWebGLプラグインが必要になります。UnityエディタはUnity Hubからダウンロードできます。

UnityエディタのLTSバージョンのみをインストールするようにし、Unity 6は使用しないでください。

お好みの新しいプロジェクト(2Dまたは3D)を作成し、[Window] タブからパッケージマネージャーを開きます。[+] ボタンをクリックし、[Git URL からパッケージを追加...]を選択します

Unity パッケージマネージャー

以下のURLを入力欄に貼り付け、「追加」をクリックしてください。インストール中に、WebGLThreadingPatcherのインストールを求めるメッセージが表示される場合がありますが、その際は「はい」をクリックして、そちらもインストールしてください。

https://github.com/ChainSafe/web3.unity.git?path=/Packages/io.chainsafe.web3-unity

インストールが完了すると、プロジェクトの設定を行うためのサーバー設定ウィンドウが表示されます。

サーバー設定 web3.unity

次のような詳細を入力してください:

  • プロジェクトID(Chainsafeのゲーム用ダッシュボードで新しいプロジェクトを作成してください)
  • 使用したいチェーン
  • RPCセクションに「Quicknode RPC」と入力すると、ブロックチェーンへの接続が途切れることなく維持されます。

その後、ウィンドウを閉じてください。これがプロジェクト全体を通じてのサーバー設定となり、UnityでのWeb3プロジェクトの準備が完了します。

Web3.unity には、プロジェクトで利用できるサンプルアプリが最初から搭載されています。サンプルアプリをインポートするには、パッケージマネージャーで「web3.unity SDK」を選択し、「Samples」タブに移動して「インポート」をクリックしてください。

web3.unityのゲームでNFTを発行するスクリプトを見てみましょう。

NFTの発行

動画の後半では、アバターを作成するために以下のスクリプトを使用しました

using UnityEngine;
using ChainSafe.Gaming.Evm.Contracts.BuiltIn;
using ChainSafe.Gaming.UnityPackage;
using Scripts.EVM.Token;

public class Erc721Mint : MonoBehaviour
{
// Variables
private string contractAddress = "0x4f75BB7bdd6f7A0fD32f1b3A94dfF409F5a3F1CC"; // web3.unity default contract for ERC-721
private string uri = "QmfUHuFj3YL2JMZkyXNtGRV8e9aLJgQ6gcSrqbfjWFvbqQ"; // Replace with your own token URI here

// Function
public async void MintErc721()
{
var response = await Web3Accessor.Web3.Erc721.Mint(contractAddress, uri);
var output = SampleOutputUtil.BuildOutputValue(response);
SampleOutputUtil.PrintResult(output, "ERC-721", nameof(Erc721Service.GetUri));
// You can make additional changes after this line
}
}

ChainSafeの公式ドキュメントで、その他のweb3.unity サンプルスクリプトをご覧ください。

皆様からのフィードバックを心よりお待ちしております!❤️

ご意見や新しいトピックに関するご要望などがありましたら、ぜひお知らせください。皆様からのご連絡を心よりお待ちしております。

このガイドをシェアする