Unity中游戲重新加載玩家位置不變的方法

在玩遊戲時,有時候會遇見需要保存玩家位置,這種遊戲在做遊戲和玩遊戲時還是很常見的,那麼我們是如何來保存玩家的位置,以做到讓玩家下次加載時不會受到位置的丟失。下面是我在遊戲中的解決方法。

1.先看下我做的簡單測試環境。


2.上面有兩個按鈕,一個按鈕是用來保存玩家的位置,另外的一個按鈕是用來加載保存的位置。

3.處理save按鈕事件和Load按鈕事件,完成寫Json和讀Json。

using UnityEngine;
using System.Collections;
using LitJson;
using System.IO;


public class JsonScript : MonoBehaviour
{
    //建一個Position類
    public class Position
    {
        public double PositionX { get; set; }
        public double PositionY { get; set; }
        public double PositionZ { get; set; }
    }
    //當玩家點擊保存按鈕時
    public void SaveClick()
    {
       Position position = new Position();
        position.PositionX = transform.position.x;
        position.PositionY = transform.position.y;
        position.PositionZ = transform.position.z;
        JsonData posData = JsonMapper.ToJson(position);
        string path = Application.dataPath + "/JsonPos.txt";
        StreamWriter streamWriter = new StreamWriter(path);
        streamWriter.Write(posData);
        streamWriter.Close();
    }


    //當玩家點擊加載按鈕
    public void LoadClick()
    {
        string path = Application.dataPath + "/JsonPos.txt";
        StreamReader streamReader = new StreamReader(path);
        string pos = streamReader.ReadLine();
        Position Pos = JsonMapper.ToObject<Position>(pos);
        transform.position = new Vector3((float)Pos.PositionX,(float)Pos.PositionY,(float)Pos.PositionZ);
        streamReader.Close();
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章