14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unityでブロックチェーンに触れてみよう(Symbol)

Last updated at Posted at 2023-01-16

思った以上に簡単にUnity上でブロックチェーンに触れることができたので、メモがてら残しておこうと思います。

1.Unityで新しいプロジェクトを作成

新しいプロジェクトを作成します。

2.UniTaskをインストール

非同期処理に必要なUniTaskをインストールします。

①メニューバーのWindow->Package Managerを選択
1.PNG
②Package Managerウィンドウの左上の+をクリックし、Add package from git URLを選択
2.png
③以下のURLを入力し、Addボタンをクリック
https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask
3.png
④インストール完了

3.ブロックチェーン上のデータを取得するためのスクリプトを作成

ブロックチェーン上から、指定アカウントの情報を取得するためのスクリプトを作成します。

①メニューバーのAssets->Create->C# Scriptを選択
ファイル名は何でも良いですが『AccountCheck』としておきます。
4.png
②作成したファイルをダブルクリックしてエディタを開きます
③以下の内容をコピペして保存します。

AccountCheck.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using Cysharp.Threading.Tasks;

public class AccountCheck : MonoBehaviour
{
    async void Start()
    {
		string node = "http://wolf.importance.jp:3000";
		string checkAddress = "NA6DKVBRZCLZ47KBLFJGZCODAZLYMBDLAVAYH2I";
		UnityWebRequest www = UnityWebRequest.Get( node + "/accounts/" + checkAddress );
		www.SetRequestHeader( "Content-Type", "application/json" );
		await www.SendWebRequest();
		var response = www.downloadHandler.text;
		Debug.Log( "response : " + response );
	}
}

4.作成したスクリプトをオブジェクトに割り当て

作成したスクリプトをオブジェクトに割り当てて実行できるようにします。

①Hierarchyウィンドウで適当なオブジェクトを選択し、InspectorウィンドウのAddComponentで3で作ったスクリプトを割り当て
5.png

5.プロジェクトを実行して、結果を確認

プロジェクトを実行して、ブロックチェーン上からデータを読み出し、ログに表示します。

①再生ボタンをクリックし実行
7.png
②Consoleウィンドウに、ブロックチェーン上から読み出したデータの情報が表示されていることを確認します。
8.png

6.おわり

以上でブロックチェーン上からデータを読み出すことができました。
どうでしょう?思ったより簡単では無いでしょうか?

5で読みだしたデータは、私のアカウントの情報になります。
3のスクリプトのcheckAddressを確認したいアカウントアドレスに書き換えることで、そのアカウントの情報を取得できます。
この情報の中には、所有しているトークン(Symbolだとモザイクという)とその所有数が含まれているので、例えば、持っているトークンによってゲーム内の挙動を変えることも可能です。

Symbolブロックチェーンには、COMSAというNFT等を売買できるプラットフォームがあるので、そこでエクスカリバーといったアイテムNFTを販売し、上記プログラムを使ってゲーム内のプレイヤーにエクスカリバーを持たせるといったことも可能になります。

今回は超簡単にブロックチェーンに触ることをメインに記事を記載したので、これだけですが、もちろんゲーム内でトークンをプレイヤー同士で送り合うといったことも割りと簡単に可能なので興味があれば、ぜひ色々調べてみて下さい。

↓送金などもやってみたい方は、toshiさんという方が作られている以下のページを参考にやってみると良いかと思います。
https://github.com/0x070696E65/symbol_cs_dual_sdk
Symbolのディスコードでは開発関係の情報が色々あるので、そちらもおすすめです。

おまけ

Symbolブロックチェーンは、APIでブロックチェーンの情報を扱えるようになっているため、簡単に情報を読み出せます。
Endpointsは以下のページで確認できますので、欲しい情報を探してみるのも良いかと思います。
https://symbol.github.io/symbol-openapi/v1.0.4/#tag/Account-routes/operation/getAccountInfo

※トランザクション確認例
http://wolf.importance.jp:3000/transactions/confirmed?recipientAddress=NA6DKVBRZCLZ47KBLFJGZCODAZLYMBDLAVAYH2I&transferMosaicId=6BED913FA20223F8&pageSize=14

※追記:次の記事書いたのでリンクをペタリ

14
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?