メタマスク Unity SDK
メタマスク Unity SDK
メモのため残しておきますgoogle翻訳
Unity 用の MetaMask SDK。
## 使い方
開発者は、MetaMask SDK を Unity ゲームにインポートして、ユーザーが MetaMask Mobile ウォレットに簡単に接続できるようにすることができます。サポートされているプラットフォームは、macOS、Windows、Linux、IOS、Android、および WebGL です。
SDK は、プレーヤーが MetaMask Mobile アプリでスキャンできる専用のプレハブを介して UI に QR コードをレンダリングします。モバイル プラットフォームでのディープリンクもサポートしています。 `ethereum` メソッドが利用可能 のすべてをゲームから直接使用できるようになりました。詳細については、上記のリンクを参照してください。
ビルド設定
SDK をビルドする場合、ビルドをコンパイルするときに Unity エディターにいくつかの変更を加える必要があります。
IOS
-ビルド設定からxcodeのビットコードを有効にするオプションを無効にします
スクリプティング バックエンド - IL2CPP
IL2CPP コード生成 - 高速で小さいビルド
アンドロイド
Android Jar Resolver - ビルドを試みる前に解決する必要があります (Assets -> External Dependency Manager -> Android Resolver -> Resolve)
スクリプティング バックエンド - IL2CPP
IL2CPP コード生成 - 高速で小さいビルド
最小 API レベル - Android 7.0 'Nougat' (API レベル 24)
その他のプラットフォーム
スクリプティング バックエンド - IL2CPP
IL2CPP コード生成 - 高速で小さいビルド
## 入門
1. インストール
モジュールをインストールするには、まず Unity アセット ストアからパッケージをダウンロードする必要があります。これにより、パッケージ マネージャーでアセットを利用できるようになります。
ここで、Package Manager を介してインポートする必要があります。 これを行うには、[ウィンドウ] メニュー > [パッケージ マネージャー] に移動します。 [My Assets] を選択し、[MetaMask Unity SDK] を選択して [Install] をクリックします。プロジェクト パッケージにリストされている `MetaMask SDK` パッケージが表示され、シーン内でそれとそのサンプルを操作できるようになります。
前提条件
TextMesh Pro (TMP がインストールされていない場合は、unity エディターによって自動的にインストールするように求められます。N.B* このパスを選択すると、最初の再描画までテキストは表示されません)
2. 初期化
インターフェイスとなるメイン クラスは `MetaMaskWallet` と呼ばれ、ユーザー ウォレットへの接続を処理し、socket.io 実装を介してウォレットへのリクエストを処理します。Unity 内で使用するには、呼ばれるコンポーネントをアタッチする必要があります。 このコンポーネントはシングルトンであり、その Instance プロパティを使用して Wallet インスタンスにアクセスできますが、これらのいずれかを実行する前に、Initialize() を呼び出して手動で初期化する必要があります。 ;`:
csharp
MetaMaskUnity.Instance.Initialize();
または、エディター内のコンポーネントで `Initialize On Start` がチェックされていることを確認するだけで、[`ethereum` メソッドが利用可能](guide/ethereum-provider. html) 従来の開発環境で期待されるとおりです。
これにより Wallet インスタンスが初期化され、「MetaMaskUnity.Instance.Wallet」からアクセスできるようになります。
### 3.接続
ウォレットの準備と初期化が完了したら、MetaMask アプリに接続する必要があります。必要なことは、次のようにウォレット インスタンスで「Connect」メソッドを呼び出すことだけです。
csharp
var ウォレット = MetaMaskUnity.Instance.Wallet;
wallet.Connect();
次に、ウォレット インスタンスの `OnWalletConnected` コールバックをサブスクライブして、ウォレットが接続されたときに通知を受け取ることもできます。
csharp
wallet.WalletConnected += OnWalletConnected;
void OnWalletConnected(オブジェクト送信者, EventArgs e) {
Debug.Log("ウォレットが接続されました");
}
呼び出しを Wallet インスタンスに委譲するだけの `MetaMaskUnity` の `Connect` メソッドを使用することもできます。
csharp
MetaMaskUnity.Instance.Connect();
パッケージ内にはさまざまなサンプル ボタンが含まれており、クリックするとこのメソッドを呼び出すことができます。これらは、プロジェクトをキックスタートするための便宜のために提供されています。
接続要求が行われると、QR コードが生成され、使用しているトランスポート (デフォルトでは「Unity UI」) に基づいて、QR コードを含む新しいキャンバスを生成するか、「MetaMaskUnityUIQRImage」が 接続が要求されたときの QR コード。後者を使用する場合は、フィールドが提供されたシーンに `MetaMaskUnityUIQRImage` コンポーネントのインスタンスを必ず追加してください。それを分離して使用する場合は、トランスポート フィールドも必要です。 トランスポートによって生成されたキャンバスから、QR コードが生成されます。
4.使い方
ウォレットが承認されると、ウォレットにリクエストを送信できるようになりました。ボタンが操作可能になるか、「WalletAuthorized」イベントが発生すると、次のようになります。
csharp
var ウォレット = MetaMaskUnity.Instance.Wallet;
wallet.WalletAuthorized += OnWalletAuthorized;
void OnWalletAuthorized(オブジェクト送信者, EventArgs e) {
Deebug.Log("ウォレットは認証されています");
}
「wallet.Request(myRequest);」を呼び出すことで、ウォレットで任意の Ethereum リクエストを呼び出すことができるようになりました。
この記事が気に入ったらサポートをしてみませんか?