如何向另一个场景发送消息
How to Send message to another scene
我的游戏中有两个场景(主菜单和游戏)。
主菜单中有两个按钮,每个按钮向游戏发送不同的值。
那么如何在其他场景脚本中设置这个值呢
脚本中 static
声明的任何变量都将在场景更改时保留。如果你在两个场景中都有一个脚本,并且在一个场景中设置了一个静态变量的值,那么另一个场景中的脚本实例将访问相同的值。
如果我没理解错的话,你是想在主菜单场景和游戏场景之间传递设置。
您可以做的是创建一个包含所有设置的 GameSettings
脚本,并将其粘贴到主菜单场景的游戏对象上。
将您的设置存储在此脚本中。
加载游戏场景通常会破坏所有现有的游戏对象,但 Unity 提供了 Object.DontDestroyOnLoad()
功能来防止对象在加载时被破坏。
在您的 GameSettings
脚本中使用它,它将同时存在于主菜单和游戏场景中,您将能够从游戏场景中检索您存储的设置。
查看文档以获取更多信息:http://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html
这是一个例子:
public class GameSettings : MonoBehaviour
{
public int NumberOfPlayer;
/* Add other game settings here ... */
void Awake()
{
DontDestroyOnLoad(transform.gameObject)
}
}
希望对您有所帮助:)
我的游戏中有两个场景(主菜单和游戏)。 主菜单中有两个按钮,每个按钮向游戏发送不同的值。 那么如何在其他场景脚本中设置这个值呢
脚本中 static
声明的任何变量都将在场景更改时保留。如果你在两个场景中都有一个脚本,并且在一个场景中设置了一个静态变量的值,那么另一个场景中的脚本实例将访问相同的值。
如果我没理解错的话,你是想在主菜单场景和游戏场景之间传递设置。
您可以做的是创建一个包含所有设置的 GameSettings
脚本,并将其粘贴到主菜单场景的游戏对象上。
将您的设置存储在此脚本中。
加载游戏场景通常会破坏所有现有的游戏对象,但 Unity 提供了 Object.DontDestroyOnLoad()
功能来防止对象在加载时被破坏。
在您的 GameSettings
脚本中使用它,它将同时存在于主菜单和游戏场景中,您将能够从游戏场景中检索您存储的设置。
查看文档以获取更多信息:http://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html
这是一个例子:
public class GameSettings : MonoBehaviour
{
public int NumberOfPlayer;
/* Add other game settings here ... */
void Awake()
{
DontDestroyOnLoad(transform.gameObject)
}
}
希望对您有所帮助:)