Unity 5 C# - DontDestroyOnLoad();不工作

时间:2017-07-21 01:38:36

标签: c# unity5

我在Unity中有一个非常简单的问题,我似乎无法解决。我想在场景之间进行无缝音乐循环。目前,我有一个空的游戏对象名为" BGMusic"使用" Music"的自定义标签。它附有一个音频源和脚本。但是,以下脚本并不适用于我:

using UnityEngine;
using System.Collections;

public class Music : MonoBehaviour {
    void Awake()
    {
        GameObject[] objs = GameObject.FindGameObjectsWithTag("Music");
        if (objs.Length > 0)
        {
            Destroy(gameObject);
        }
        DontDestroyOnLoad(gameObject);
    }
}

我从标题为Playing Seamless Music Across Scenes in Unity 5 With Non-Destroyable Object的YouTube视频中找到了此代码示例。所有评论都表示它对他们有用,但似乎对我的游戏对象没有任何影响。我甚至试过做以下事情:

void Awake()
{
    DontDestroyOnLoad(gameObject);
}

(班级名称和进口名称相同)

我很困惑,对此主题的任何帮助都将不胜感激。所有其他类似的帖子都挤满了无用的代码或用JavaScript完成。谢谢你的时间。

-TY

1 个答案:

答案 0 :(得分:1)

您的代码必须是:

if (objs.Length > 1)  // not 0 
{
    Destroy(gameObject);
}

在视频中,她写了1,但是您写了0,当代码运行时,GameObject每隔时间自我毁灭!

要注意!