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