Unity SDKを始めよう

※当記事は下の記事を翻訳したものです
メタバースの作成には最高のツールが必要です。
そのため、私たちはWeb3をサポートする最も人気のあるゲームエンジンを強化するために、Unityをはじめとして、多段階のリリースを行っています。
私たちは、皆さんに新しいUnity SDKをお示しし、Web3ゲームの次の波を作っていく力をご提供できることを嬉しく思います。
このガイドでは、次の方法を説明します。
- Unityプロジェクトを作成し、SDKをインストールする
- ユーザーが自分のウォレットをゲームに接続できるようにする。
- C#スクリプトを使ってスマートコントラクトからデータを読み取り、トランザクションを書き込む。
さあ、はじめましょう!
Unityプロジェクトの作成
Unityを初めて使う場合は、Unity HubとUnity Editorをダウンロードし、インストールする必要があります。
Visual Studio Codeを使用している場合は、Using .NET in Visual Studio Codeガイドに役立つ拡張機能とIntellisenseのサポートがあるので、そちらをお勧めします。
セットアップが完了したら、Unity Hubを開き、Create New Projectをクリックします。

次に、3Dを選択し、プロジェクト名を付けて、Create Projectをクリックします。

thirdweb SDKのインストール
web3の機能を追加するために、thirdweb SDKをインポートしてみましょう。
まず、GitHub の thirdweb-dev/unity-sdk releases ページに移動してください。
使用したいSDKのバージョンの.unitypackageをダウンロードします。(通常、最新バージョンが必要です。)

これで.unitypackageが取得できたので、Assets > Import Package > Custom PackageのようにクリックしてUnityプロジェクトに追加します。

ここから、先ほどGitHubからダウンロードしたファイルを選択すると、Import Unity Packageのメニューが表示されます。

すべて選択したままで、Importをクリックします。
これで、Projectウィンドウに、インポートしたすべてのリソースが表示されます。

Scenesフォルダから、ThirdwebDemoScene.unityファイルをダブルクリックして開いてください。
このシーンを操作すると、デモの一部として提供されているCanvasを見ることができます。

このデモのコードを表示し、SDKで何ができるかを確認するには、ThirdwebSDKDemos.csファイルをダブルクリックで開きます。

このファイルでは、SDKを初期化して使い始めるための基本的な機能を確認することができます。
例えば、Start関数(ゲーム開始時に呼び出される)内で、ブロックチェーンからデータを読み込むためのSDKの読み取り専用インスタンスを初期化することができます。

using UnityEngine;
// Import the Thirdweb SDK namespace
using Thirdweb;
public class ThirdwebSDKDemos : MonoBehaviour
{
// Create a Thirdweb SDK instance for us to use throughout this class
private ThirdwebSDK sdk;
void Start()
{
// When the app starts, set up the Thirdweb SDK
// Here, we're setting up a read-only instance on the "goerli" test network.
sdk = new ThirdwebSDK("goerli");
}
}
このファイルでは、thirdwebのSDKが提供する以下のような最も一般的な機能を調べることができます。
-OnLoginClick:ユーザーのウォレットを接続し、SDKを読み取り/書き込みモードに設定します。
-GetERC721、GetERC1155、およびGetERC20:スマートコントラクトから各種トークンの情報を読み取ります。
-MintERC721、MintERC1155、MintERC20:接続したウォレットからブロックチェーンにトランザクションを書き込む(新しいトークンをミントします)。
-Deploy:SDKから直接、新しいスマートコントラクトをデプロイします。
コードに慣れ親しみ、興味があるものをカスタマイズしてください!
スマートコントラクトからデータを読み込み

public async void GetERC721() {
var contract = sdk.GetContract("<smart-contract-address>"); // NFT Drop
NFT result = await contract.ERC721.Get(count.ToString());
}
スマートコントラクトへのトランザクションの書き込み

public async void MintERC20() {
var contract = sdk.GetContract("<smart-contract-address>"); // Token
var result = await contract.ERC20.Mint("1.2");
}
では、どのようにゲームを作っていくかを見ていきましょう。
ゲームの作成
変更した内容をテストするために、ゲームをBuild and Run(ビルドして実行)してみましょう。
File> Build Settingsをクリックして、ビルド設定を開きます。
Platformオプションから、WebGLを選択し、Switch Platformを押します。

次に、左下のPlayer Settings...をクリックし、Resolution and PresentationのWebGL TemplateをThirdwebに設定します。

また、プロジェクトをビルドするために、Auto Graphics API を無効にします。

Add Open Scenes をクリックして、Scenes In Build にシーンを追加することを確認してください。

最後に、Build And Runをクリックし、ディレクトリとしてプロジェクト内に新しいbuildフォルダを作成します。
これで、ゲームをテストするためのビルドプロセスが開始されます。

おめでとうございます!
ゲームが構築され、ブラウザでテストすることができます。

これで、ウォレットを接続し、このようにブロックチェーンへのトランザクションの読み書きを開始することができます。

ゲームのデプロイ
ゲームをウェブに展開するには、Player Settings... セクションで、Publishing Settings の Compression Format を Disabled に設定します。

この設定でゲームを再ビルドし、buildフォルダ(ビルドの出力先として選択したディレクトリ)をターミナルで開いてください。
cd <path-to-build-folder-here>
次に、以下のコマンドを実行することで、Storageを使用して、アプリケーションをIPFSにアップロードしてデプロイすることができます。
npx thirdweb@latest upload .
このコマンドは、ビルドディレクトリをHTMLにアップロードし、アプリがデプロイされているリンクを表示します。

おめでとうございます!🥳🎉
次はどうする?
Web3の機能でゲームを作る準備ができました!
質問がありますか?thirdwebのDiscordに飛び込んで、あなたがUnityでビルドしていることを教えてください。
お待ちしています。
Discussion