我的游戏中有两个场景(主菜单和游戏)。 主菜单中有两个按钮,每个按钮向游戏发送不同的值。 那么如何在其他场景脚本中设置此值。
答案 0 :(得分:1)
脚本中声明为static
的任何变量都将在场景更改中保留。如果两个场景中都有脚本,并在其中一个场景中设置静态变量的值,则另一个场景中的脚本实例将访问相同的值。
答案 1 :(得分:1)
如果我理解正确,您正试图在主菜单场景和游戏场景之间传递设置。
您可以创建一个包含所有设置的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)
}
}
希望有所帮助:)