当改变Unity项目中的场景时,例如,通过按下按钮从菜单场景到主场景,以下哪一种是更明智的方式:
Application.LoadLevel( ("mainScene") );
StartCoroutine( LoadLevel("mainScene") );
按钮背后的代码是上面的代码之一,以及大量其他要实现的方法,所以这就是为什么我想知道哪一个用于改变场景......
答案 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);
}
}