メタマスク 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 リクエストを呼び出すことができるようになりました。

この記事が気に入ったらサポートをしてみませんか?