みなさん、メリクリ、マナカナ。
マナカナんち / 三倉茉奈、三倉佳奈はじめまして! 三倉茉奈、三倉佳奈です。 このチャンネルでは、2020年12月に女児を出産したばかりの新米ママ・茉奈と、 二児の先輩ママ・佳奈で、育児やプライベートについて発信していこうと思います。… www.youtube.com
マナカナ結婚してましたね。
さて今回は前回のAPIをUnityで実行しようの回です。
完成予想図はこちら
ボタンを実行したらトランザクションを送信するAPIをPOST通信で送る
といった流れになります。
まずはUnity Hubをインストールします(ここは以下の記事で環境を作って下さい)
ダウンロード今すぐ Unity をダウンロードし、2D および 3D のマルチプラットフォームの体験やゲームを制作するための、世界で最も人気のある開発プラットフォームの使用を開始しましょう。 unity.com
そしてUnityを起動してボタンを作ります。
ボタンをクリックしたら関数を実行する記事はこちら
【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の抽象度を高めたりして遊びましょう!!
僕も時間があったら色々作っていきます
注釈)この前ゲーム開発者のもくもく会に参加したのですが、ゲーム開発は基本的に面白いゲーム、人気が出るゲームの方が優先度が高く、ブロックチェーンを使っているから面白いとはなりませんとのことです。僕は「面白いゲーム」を作るのはちょっと苦手なので、みなさん頑張ってくださいね
その代わり「こういう機能ってどうやって作るの?」とかブロックチェーンの実装でお困りでしたら気兼ねなくお声かけください!お待ちしています。