在 Unity 和 C# 中将输入字段的浮点数传输到新场景和新脚本



>我有一个汽车游戏,你在一个场景中定义所有设置,比如速度,之后你可以按播放,新场景出现。

第一个场景的代码是这样的,它附加到一个空的游戏对象:

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(;或者使用播放器首选项保存数据。

最新更新