DontDestroyOnLoad

时间:2016-03-08 22:03:00

标签: c# unity3d singleton

我有主场景(街道)和许多儿童场景(房屋),我可以从主场景中来到这里。当我来到一个家,然后回到街上,我需要放置在那个房子附近的玩家对象,他在那里。所以我需要用DontDestroyOnLoad来记住他的位置。

enter image description here

但是当我回到家时,我需要从主场景中禁用播放器对象,这里我的代码不起作用。在模拟中首次使用此脚本后,我无法向上/向下移动光标,只能向左/向右移动(这是第一人称射击游戏)

public PS plr;

private GameObject playerOnMainScene;

public void Awake()
{
    PlayerSingleton();
    DisablePlayerOfMainScene();
}

void PlayerSingleton()
{
    if (!plr)
    {
        DontDestroyOnLoad(gameObject);
        plr = this;
    }
    else
        Destroy(gameObject);
}

void DisablePlayerOfMainScene()
{
    playerOnMainScene = GameObject.FindGameObjectWithTag("PlayerOnMainScene");

    if (SceneManager.GetActiveScene().name != "MainScene")
    {
        Debug.Log("1"); // this code doesn't work when scene name != "MainScene"
        playerOnMainScene.SetActive(false);
    }
    else
        playerOnMainScene.SetActive(true);
}

0 个答案:

没有答案