7日目 Unity Prefab化したものを利用する、セーブとロード、Json化
<Prefab化したものを利用する>
[SerializeField] Transform parent; //オブジェクトのTransformを取得(親)
[SerializeField] GameObject imagePrehab; //Prefab化したオブジェクトを取得
void Start()
{
//オブジェクトの生成
GameObject image = Instantiate(imagePrehab);
//親要素の設定 ここでいう親要素とはCanvasのこと(Canvasのもとになければimageは表示されない)
image.transform.SetParent(parent ,false); //falseをつけると親要素のポジションを0,0,0に
}
このスクリプトをEmptyに貼り付けると、Parent(imageの親要素はCanvas)とimage Prefabを設定できるようになる
<セーブとロード>
セーブ
string x = "セーブデータ";
PlayerPrefs.SetString("ThisData", x); //SetStringでセーブ、”セーブデータ”は名前、ThisDataはキーコートのようなもの
PlayerPrefs.Save();
ロード
string saveText = PlayerPrefs.GetString("ThisData"); //GetStringでキーコードを指定してロード
Debug.Log(saveText);
<Json化>
{"hp":0 , "at":0 , "currentStage":0} このようにデータを文字列で表示させる方法
現状のデータ、情報を文字列化して表示したいときに使います。
using System;
void Start()
{
PlayerModel player = new PlayerModel(); //生成
string jsonPlayer = JsonUtility.ToJson(player); //文字列に変換
Debug.Log(jsonPlayer); //文字列を表示
//セーブ、ロードした後に復元する方法
player = JsonUtility.FromJson<PlayerModel>(jsonPlayer); //jsonPlayerが復元のコードに
}
[Serializable]
public class PlayerModel //このデータをJson化するには
{
[SerializeField] //これを文字列に変換するという意味
int hp;
[SerializeField]
int at;
[SerializeField]
int currentStage;
}
勉強時間合計:15.5h
今日は少し怠けてしまったなぁ。。。汗
次回から本格的にゲーム制作に取り組んでいけそうなので楽しみです!!
もう一度だけクラスと関数のレッスンを復習してから挑みます!