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

 

今日は少し怠けてしまったなぁ。。。汗

次回から本格的にゲーム制作に取り組んでいけそうなので楽しみです!!

もう一度だけクラスと関数のレッスンを復習してから挑みます!