Unityでトランザクションを実行したいんじゃ
🩺

Unityでトランザクションを実行したいんじゃ

タグ
Symbol
公開日
December 24, 2021

みなさん、メリクリ、マナカナ。

マナカナんち / 三倉茉奈、三倉佳奈はじめまして! 三倉茉奈、三倉佳奈です。 このチャンネルでは、2020年12月に女児を出産したばかりの新米ママ・茉奈と、 二児の先輩ママ・佳奈で、育児やプライベートについて発信していこうと思います。… www.youtube.com

マナカナ結婚してましたね。

さて今回は前回のAPIをUnityで実行しようの回です。

完成予想図はこちら

ボタンを実行したらトランザクションを送信するAPIをPOST通信で送る

といった流れになります。

まずはUnity Hubをインストールします(ここは以下の記事で環境を作って下さい)

ダウンロード今すぐ Unity をダウンロードし、2D および 3D のマルチプラットフォームの体験やゲームを制作するための、世界で最も人気のある開発プラットフォームの使用を開始しましょう。 unity.com

そしてUnityを起動してボタンを作ります。

image

ボタンをクリックしたら関数を実行する記事はこちら

【Unity入門】Buttonの作り方!押された判定はどう取るの? | 侍エンジニアブログ今回はUIの Button について見ていきたいと思います。 何か作品を作った時に、 ユーザーの反応を得る方法 としてボタンはほぼ必須な機能ですよね! どんな作品にも大体つけることがあると思います。… www.sejuku.net

このような形で実行する形になっていきます。

そしてAPIのPOSTを実施する方法はこちら

HTTP サーバーにフォームを送信 (POST) - Unity マニュアル注意 UNet は非推奨となり、今後 Unity から削除される予定です。新しいシステムが開発中です。詳細は ブログ と FAQ を参照してください。 HTML フォームにフォーマットされたデータをサーバーに送信する 2… docs.unity3d.com

結局こんな感じの実装でPOSTができました(コードの汚さとかは無視してね)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;public class ConnectionTest : MonoBehaviour
{
    // Start is called before the first frame update
    public void OnClick()
    {
        StartCoroutine(Upload());
    }[System.Obsolete]
    IEnumerator Upload()
    {
        List<IMultipartFormSection> formData = new List<IMultipartFormSection>();UnityWebRequest www = UnityWebRequest.Post("APIのURL", formData);
        yield returnwww.SendWebRequest();if (www.isNetworkError ||www.isHttpError)
        {
            Debug.Log(www.error);
        }
        else
        {
            Debug.Log("Form upload complete!");
        }
    }
}

後はボタンを押したら実行されるか確認します。

これでトランザクションが実行できました。

後はPOSTで渡すformDataをいじったり、受け取ったデータを加工できるようにAPIの抽象度を高めたりして遊びましょう!!

僕も時間があったら色々作っていきます

注釈)この前ゲーム開発者のもくもく会に参加したのですが、ゲーム開発は基本的に面白いゲーム、人気が出るゲームの方が優先度が高く、ブロックチェーンを使っているから面白いとはなりませんとのことです。僕は「面白いゲーム」を作るのはちょっと苦手なので、みなさん頑張ってくださいね

その代わり「こういう機能ってどうやって作るの?」とかブロックチェーンの実装でお困りでしたら気兼ねなくお声かけください!お待ちしています。