質問: ### 前提・実現したいこと unityでアクションゲームを作っています。 そのゲームの機能の一つとして、 マリオメーカーのように、自分でステージを作って遊んだり公開したりするものを作りたいのですが、 unityでプレイヤーが作ったステージを保存したり、送受信したりすることは出来ますか。 因みにプレイヤーがタップした場所にprefabを作成してステージを作れるようにするつもりです。
回答: 大まかには下記で可能です。 **1.ステージを構築するprefabにIDを付与する。** **2.「プレイヤーが作ったステージを保存」の時はその設置したprefabのIDと位置をJSONデータなどでサーバーに保存する。それが難しいようならばテキストファイルに書き出す。** **3.受信側はそのJSONデータからprefabを配置してステージを構築する。** JSONの例を挙げれば ``` { "prefab":[ {"id":0,"x":0,"y":0}, {"id":1,"x":10,"y":10} ] } ``` これを他人に渡した後、デシリアライズしてその変数を元にprefab生成をおこなえば 「id:0のprefabをx座標0,y座標0に生成」 「id:1のprefabをx座標10,y座標10に生成」 という様に使えます。 ================================= 勉強項目は初学者には難度高いですが下記を行って下さい。 **・JSONのシリアライズ・デシリアライズ** **・JSONの受け皿となるクラスの作成** **・通信の為のUnityWebRequest** **・WEBで受け渡しするのならばサーバー構築とDBとWEB APIの作成。そのためのmySQLやPHPの学習** **・テキストファイルで受け渡しするのならばテキストファイルの書き出し・読み込み。受け渡し方法** ※JSONのシリアライズ 通信で渡す為にC#のクラスや変数をJSON形式というもの書き換える。 ※JSONのデシリアライズ シリアライズの逆。通信で受け取ったJSON形式をC#のクラスや変数に書き換える。