使用StartCoroutine或Application.LoadLevel更改场景

时间:2015-07-24 09:41:26

标签: unity3d

当改变Unity项目中的场景时,例如,通过按下按钮从菜单场景到主场景,以下哪一种是更明智的方式:

Application.LoadLevel( ("mainScene") );

StartCoroutine( LoadLevel("mainScene") );

按钮背后的代码是上面的代码之一,以及大量其他要实现的方法,所以这就是为什么我想知道哪一个用于改变场景......

1 个答案:

答案 0 :(得分:1)

使用StartCoroutine更好,因为如果您在单击按钮并尝试立即更改场景时播放声音,则会根据您配置GameObjects和控制声音的脚本来切割声音。

这是我使用的脚本。请注意,我给声音完成0.2秒。

using UnityEngine;
using System.Collections;

    public class SceneLoader : MonoBehaviour
    {
        private AudioController audioController;

        void Start ()
        {
            audioController = GameObject.FindWithTag ("AudioController").GetComponent<AudioController> ();
        }

        public void LoadLevel (string sceneName)
        {
            audioController.PlayMenuClick ();
            StartCoroutine (LoadSceneAsync (sceneName));
        }

        private IEnumerator LoadSceneAsync (string levelName)
        { 
            yield return new WaitForSeconds (0.2f);
            Application.LoadLevel (levelName);
        }
    }