我在Unity中有一个类,它有一个切换开关列表,可以在与游戏其余部分不同的场景中打开和关闭.我想要的是让用户选择一个按钮,然后当我们回到那个场景时,我的主游戏中会发生相应的动作.但是,我在场景之间发送信息时遇到问题.
目前我的切换类看起来像这样:
private bool action1 = false;
public bool Action1
{
get { return action1;}
}
void OnGUI()
{
action1 = GUI.Toggle(new Rect(10, 10, 100, 30), action1, "test");
}
void Update()
{
if(Input.GetButton("Jump"))
{
Application.LoadLevel("Main");
}
}
private ActionClass actionIsOn = new ActionClass();
void Start()
{
if(actionIsOn.Action1 == true)
{
Debug.Log("action is on");
}
else
{
Debug.Log("nothing happening");
}
}
但是,当我测试这个时,没有任何反应.
我是否正确设置了它?有没有更好的方法将这些信息从一个场景传递到另一个场景?
解决方法:
选项1:
使用静态类来保存与多个场景相关的全局信息.
public static class globalData
{
public static bool SomeBooleanFlag;
}
这样在你的第一个场景中你可以将globalData.someBooleanFlag设置为某个值,在第二个场景中你可以检查它.
选项#2:
您可以使用Object.DontDestroyOnLoad来确保在加载新场景时场景中的对象不会被销毁.这样,您可以聚合要传递到单个对象中的其他场景的所有信息(或使用多个对象,并使它们保持活动状态),并确保即使在场景发生变化后它仍然保持活动状态.
http://docs.unity3d.com/Documentation/ScriptReference/Object.DontDestroyOnLoad.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。