我有一个统一的布线项目,我想保存玩家在场景中所做的所有修改。
我应该如何保存游戏?如何保存我的游戏对象?我需要序列化我的游戏对象,但我不知道该怎么做!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.Characters.FirstPerson;
public class GameController : MonoBehaviour
{
public Transform player;
int i;
void Start ()
{
i = 1;
}
void Update ()
{
if (Input.GetKeyUp(KeyCode.Escape))
{
Pause();
}
if(player.GetComponent<FirstPersonController>().enabled == false)
{
if (Input.GetKey (KeyCode.UpArrow))
{
Debug.Log ("Up pressed");
player.transform.position = new Vector3(player.transform.position.x,player.transform.position.y + 1.0f,player.transform.position.z);
}
else if (Input.GetKey (KeyCode.DownArrow))
{
Debug.Log ("Down pressed");
player.transform.position = new Vector3(player.transform.position.x,player.transform.position.y - 1.0f,player.transform.position.z);
}
}
}
答案 0 :(得分:0)
因此,我假设-在另一个脚本中-您将要加载一个新的场景,并且想要维护附加了GameController
脚本的对象。
在这种情况下,您可以使用DontDestroyOnLoad()调用,平凡的形式是这样的(只需将Awake()
函数添加到您的类中即可):
void Awake()
{
DontDestroyOnLoad(this.gameObject);
}
这样,加载新场景时不会破坏对象。
如果您想在游戏关闭时保存数据,为了以后加载它们,请PlayerPrefs。