我有2个场景并希望将信息从一个传递给另一个。我在第一个场景中创建了一个脚本Constants,其中保留了我希望为下一个场景保存的数据。未将新值传递给尚未销毁的对象
这就是:
public class Constants : MonoBehaviour {
public string scratchImageFront;
public string scratchImageBack;
void setScratchFront(string _scratchFront)
{
scratchImageFront = _scratchFront;
}
void setScratchBack(string _scratchBack)
{
scratchImageBack = _scratchBack;
}
}
之前移动到下一个场景,我打电话不破坏常量脚本:
GameObject constants = GameObject.Find("Constants");
Constants script;
script = constants.transform.GetComponentInChildren<Constants>();
DontDestroyOnLoad(constants);
Application.LoadLevel("scratch");
我然后将数据收集在我的第二个场景,一切都好。我在我的第二个场景完成后,我回到我的第一个场景
Application.LoadLevel("start");
和重做相同的步骤,我第一次这样做了,常量脚本不保留传递给它的新的字符串,它保留旧的。为什么?
我需要摧毁我的第二个场景中的常量脚本,以便一切正常,但我不想这样。我究竟做错了什么?
我想你有2个常量的实例,因为'LoadLevel(“start”)';将再次创建一个实例。 – Kay
我有一个脚本,我称之为“骡子”,基本上这样做。 https://gist.github.com/3919639 – Calvin