Sea*_*ean 4 c# unity-game-engine
我在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");
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的主场景中的一个班级中,我有以下代码:
private ActionClass actionIsOn = new ActionClass();
void Start()
{
if(actionIsOn.Action1 == true)
{
Debug.Log("action is on");
}
else
{
Debug.Log("nothing happening");
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我测试这个时,没有任何反应.
我是否正确设置了它?有没有更好的方法将这些信息从一个场景传递到另一个场景?
小智 7
选项1:
使用静态类来保存与多个场景相关的全局信息.
public static class GlobalData
{
public static bool SomeBooleanFlag;
}
Run Code Online (Sandbox Code Playgroud)
这样在你的第一个场景中你可以设置GlobalData.SomeBooleanFlag
一些值,在第二个场景中你可以检查它.
选项#2:
您可以使用它Object.DontDestroyOnLoad
来确保在加载新场景时场景中的对象不会被破坏.这样,您可以聚合要传递到单个对象中的其他场景的所有信息(或使用多个对象,并使它们保持活动状态),并确保即使在场景发生变化后它仍然保持活动状态.
http://docs.unity3d.com/Documentation/ScriptReference/Object.DontDestroyOnLoad.html