如何将消息发送到另一个场景

时间:2015-03-28 19:39:41

标签: unity3d

我的游戏中有两个场景(主菜单和游戏)。 主菜单中有两个按钮,每个按钮向游戏发送不同的值。 那么如何在其他场景脚本中设置此值。

2 个答案:

答案 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)
    }
}

希望有所帮助:)