首页 > 解决方案 > 将输入字段的浮点数转移到 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);
      }
}

在下一个场景中,我必须在一个名为“驾驶”的脚本中处理速度,该脚本附加到汽车上。而且我必须销毁数据脚本,因为在下一个场景中我没有输入字段。我怎样才能获得速度?

我尝试了几个小时,但我无法为这个简单的问题找到解决方案。谢谢。

标签: c#unity3dtransfer

解决方案


有很多方法可以解决这个问题,我建议使用静态脚本仅保存数据,但不能将其分配给游戏对象。这是一种简单的方法,因为您不需要使用单例。

public static class Data{
private static int speed
public static int speed{
    get 
    {
        return speed;
    }
    set 
    {
        speed = value;
    }
}

如果要将脚本分配给游戏对象,请使用 DontDestroyOnLoad(gameObject); 或者使用 playerprefs 来保存数据。


推荐阅读