>我有一个汽车游戏,你在一个场景中定义所有设置,比如速度,之后你可以按播放,新场景出现。
第一个场景的代码是这样的,它附加到一个空的游戏对象:
using UnityEngine;
using UnityEngine.UI;
public class Data : MonoBehaviour {
static public float speed=10f;
public InputField speedField;
void Update()
{
speed = float.Parse(speedField.text);
Debug.Log(speed);
}
}
在下一个场景中,我必须在一个名为"驾驶"的脚本中处理速度,该脚本附加到汽车上。我必须销毁数据脚本,因为在下一个场景中我没有输入字段。如何获得速度?
我尝试了几个小时,但无法找到这个简单问题的解决方案。谢谢。
有很多方法可以解决这个问题,我的建议是使用静态脚本仅用于保存数据,但不能将其分配给游戏对象。这是一种简单的方法,因为您不需要使用单例。
public static class Data{
private static int speed
public static int speed{
get
{
return speed;
}
set
{
speed = value;
}
}
如果要将脚本分配给游戏对象,请使用DontDestroyOnLoad(gameObject(;或者使用播放器首选项保存数据。