Войти
UnityФорумПрограммирование

Не загружается сцена в Unity

#0
(Правка: 17:08) 17:06, 12 окт 2022

Всех приветствую, разрабатываю игру на Unity и столкнулся с проблемой. Я создал коллайдер и когда в него входит игрок должен загружаться другой уровень, но почему то не загружается, хоть в Hierarche появляется надпись Scene(isLoading).
Кто знает в чем проблема, подскажите пожалуйста что я делаю не так.

Скрипт при вхождении в коллайдер:

public class LoadScene : MonoBehaviour
{
    public string SceneName;

    private void OnTriggerEnter(Collider other)
    {
        SceneTransition.SwitchToScene(SceneName);
    }
}

Скрипт управления сценами и анимациями загрузки:

public class SceneTransition : MonoBehaviour
{
    public TextMeshProUGUI LoadingPercentage;
    public Image LoadingProgressBar;

    static SceneTransition instance;
    static bool shouldPlayOpeningAnimation = false;

    private Animator componentAnimator;
    private AsyncOperation loadingSceneOperation;

    public static void SwitchToScene(string sceneName)
    {
        instance.componentAnimator.SetTrigger(name:"sceneClosing");

        instance.loadingSceneOperation = SceneManager.LoadSceneAsync(sceneName);
        instance.loadingSceneOperation.allowSceneActivation = false;

        instance.LoadingProgressBar.fillAmount = 0;
    }

    // Start is called before the first frame update
    void Start()
    {
        instance = this;

        componentAnimator = GetComponent<Animator>();

        if (shouldPlayOpeningAnimation) componentAnimator.SetTrigger(name: ("sceneOpening"));
    }

    // Update is called once per frame
    void Update()
    {
        if (loadingSceneOperation != null)
        {
            LoadingPercentage.text = Mathf.RoundToInt(loadingSceneOperation.progress * 100) + "%";
            LoadingProgressBar.fillAmount = loadingSceneOperation.progress;
        }
    }

    public void OnAnimationOver()
    {
        shouldPlayOpeningAnimation = true;
        loadingSceneOperation.allowSceneActivation = true;
    }
}

Все необходимые библиотеки подключены.

Изображение

Изображение
#1
18:18, 12 окт 2022

Кто вызывает OnAnimationOver() ?

#2
21:53, 12 окт 2022

Samaritan
Емае, спасибо за ответ. Я забыл добавить событие на вызов OnAnimationOver.

UnityФорумПрограммирование