Loom, Truffle, Unityスタートガイド

Loom Network Japanese
Loom Network JP

--

本記事は、Getting started with Loom, Truffle and Unity(Zac Holland) の翻訳です。万一誤訳などありましたらPrivate Note機能でお知らせ下さい。

今後数週間の私のゴールは、Loomを使ってブロックチェーンゲームを作ることだ。私の中での最高のスタックは、コントラクト開発にはTruffle、クライアントの具体化にはUnityを使うというものだ。

私は直近の8時間を、これを理解するために費やした。チームやLoomコミュニティから多大なヘルプを受け、そしてこの件について他の人がこれ以上苦労しないよう、私の進歩をここに記録することにした。

ステップ1: Loomをインストール

この部分は簡単だ。単にあなたのOS用のチュートリアルに従うだけで良い。

またそこには、最新の状態をキープするためのDockerコンテナがいくつか用意されている。それらへのリンクはページ下部にある。

ステップ2: プロジェクトのセットアップ

私のプロジェクトはこんな感じだ。

ステップ3: dAppchainフォルダでTruffleをセットアップ

dappchainフォルダ内で、私はこの短いチュートリアルに従い最小限のtruffleプロジェクトのセットアップを行った。

そのフォルダへと入って yarn deploy を実行するだけで、あなたのコントラクトをLoomチェーン上にアップすることができる。

注: デプロイが機能しない、もしくはエラーが発生する場合は、この2つの点が間違っている可能性がある!

  1. あなたのLoomノードに接続できないのかもしれない。別のコンピューターやVM上で実行している場合、truffle.jsまたはtruffle-config.json でIPが正しく設定されているか確認すること。
  2. Truffleやsolcには、Loomと組み合わせがよくないバージョンがある。Truffleはv4.1.8、Solcはv0.4.23であることを確認しよう。

ステップ4: unityclientフォルダでUnityプロジェクトをセットアップ

unityclientフォルダ内では、取ってきたUnity 3D SDK をこのフォルダに入れた (Loomには利用可能なUnityパッケージがまだない)。

ステップ5: TruffleでABIとアドレスをエクスポート

はじめに、Unity project の所にディレクトリを作成しよう: Assets/Resources/contracts/abi 及び Assets/Resources/contracts/address

あなたのコントラクトデータは、これらフォルダにエクスポートされる。

今度は Truffle projectへ戻って、マイグレーションフォルダ内に 99_export_abis.js というファイルを追加する。あなたのプロジェクトは現在こんな感じに見えているはずだ。

マイグレーションフォルダ内の各ステップは、マイグレート/ デプロイ時に呼び出され、99が最後のステップとなる。以下のようになるはずだ:

あなたのプロジェクトが私のものと同じように正確にセットアップされていれば、これらは動作するはずだ。もし何かしら名前を変更してしまったら、上のコード内のパス更新を行うよう確認すること。

また同じく yarn deployyarn deploy:reset を実行して、これらABIやアドレスのファイルがUnityプロジェクトディレクトリへと置かれることを確認する。

ステップ6: Unityシーンのセットアップ

次は新しいシーンを作ろう。新しいシーンでは、 SimpleStoreHandlerという新規スクリプトを添付した空のゲームオブジェクトを作成する。次のようになるはずだ:

こちらが SimpleStoreHandler スクリプトの内容だ。

全体的によくコメントされているが、もし何か質問があればお知らせいただきたい!

最後に: テスト

Unityプロジェクトを実行してみよう!Loomからのメッセージやデータをいくつか見れるはずだ!

もし何か問題があれば私にお知らせいただければ!この他にもみなさんが直面した問題を追記していくつもりでいるし、このセットアッププロセスは難しくあるべきでないと私は願っている!

編集: エラーのトラブルシューティング

Exception: JSON-RPC Error -32603 (Internal error): name is not registered

もしUnityでこのエラーが発生したら、それはつまりアドレスでコントラクトにアクセスしなければならない際に、コントラクト名でアクセスしようとしてしまっているということだ。Go-Loomプラグインのみコントラクト名でアクセスが可能であり、Solidity EVMコントラクトはアドレスでアクセスしなければならない。この場合あなたがすべきなのは、コントラクトのアドレスを取得し、ステップ6の58行目にてアドレスを使用し EvmContract クラスをインスタンス化することだ。

ソースコード

ETHのチップ箱!

0xACc0E804ED005A8be4A95Bdb03DBa13337183738
https://loomx.io/

Loom Network日本語情報:

フォローをお願いします!
Github | Telegram(日本語) | Twitter(日本語) |Qiita

公式サイト https://loomx.io

--

--

Loom Network Japanese
Loom Network JP

Loom Networkは、ゲームやソーシャルアプリを中心としたEthereum DAppsのためのスケーリングソリューションを提供します。http://loomx.io/