SceneManager.GetSceneByName (levelName) .IsValid () возвращает false - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть скрипт «WaitForAnimThenLoad», который используется для загрузки сцен после ожидания анимации на предыдущем экране до конца sh:

public class WaitForAnimThenLoad : MonoBehaviour
{
public string animName;
public string levelName;
private Animator animator;

public void Play()
{
    StartCoroutine(LoadAfterAnim());
}

public IEnumerator LoadAfterAnim()
{
    animator = GetComponent<Animator>();
    AnimationClip[] clips = animator.runtimeAnimatorController.animationClips;

    foreach (AnimationClip clip in clips)
    {
        if (clip.name == animName)
        {
            yield return new WaitForSeconds(clip.length);

            SceneManager.LoadSceneAsync(levelName);
        }
    }

}
}

Теперь этот скрипт работает; тем не менее, я пытаюсь обновить скрипт, чтобы я мог загрузить что-нибудь после анимации (например, когда я нажимаю кнопку «Параметры» на экране заголовка, он будет ждать окончания анимации до sh, а затем установить "Параметры экрана" GameObject для "Активный". Я попытался сделать это, проверив, была ли сцена или нет. Вот как выглядит новый LoadAfterAnim ():

public IEnumerator LoadAfterAnim()
{
    animator = GetComponent<Animator>();
    AnimationClip[] clips = animator.runtimeAnimatorController.animationClips;

    foreach (AnimationClip clip in clips)
    {
        if (clip.name == animName)
        {
            yield return new WaitForSeconds(clip.length);

            if (SceneManager.GetSceneByName(levelName).IsValid())
            {
                SceneManager.LoadSceneAsync(levelName);
            }
            else
            {
                Debug.Log("scene not valid");
            }
        }
    }

}

Однако, даже когда сцена действительна (и загружает сцену без оператора if), она всегда возвращает сообщение «сцена недействительна». Почему это так? Стоит ли разделять «ожидание анимации, затем загрузку сцены» и «ожидание анимации, а затем загрузку» gameobject "в отдельные сценарии?

Рады предоставить дополнительную информацию. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...