• Как сделать так что бы после анимации был переход в другую сцену?

    @DrRen7
    Ну начнем с простого это переход на другую сцену лучше почитать тут
    using UnityEngine.SceneManagement;
    
    static public class SceneWalker   //как пример что бы не создавать обьект со скриптом 
    {
        static public void SceneChanger(string sceneName,int sceneNumber =-1) // создаем метод перехода по имени или номеру сцены 
        {
            if (sceneNumber>=0) SceneManager.LoadScene(sceneName);
            else SceneManager.LoadScene(sceneName);      
        }
    }

    в первой сцене создаем объект со скриптом

    using UnityEngine;
    
    public class SceneSelect : MonoBehaviour
    {
        void Start()
        {
            Invoke(nameof(LoadNewScene), 2f); // через 2 секунды запуск метода LoadNewScene()
        }
    
        void LoadNewScene()
        {
            Debug.Log("Loding");
            SceneWalker.SceneChanger("Scene2",1);  // обращаетмя к реализации SceneWalker для загрузки новой сцены тут или имя или порядок
        }
    }

    далее надо обязательно добавить сцены в билд
    67367661082c3525607411.png
    ну а если нужно плавное затемнение, то перед LoadNewScene() можно вызвать другой метод который потом вызовет LoadNewScene()
    Ну думаю с переходам с переходом понятен, просто надо почитать документацию. Теперь вопрос как через анимацию запустить LoadNewScene() подхода есть 2
    создаю простую анимацию
    1) модифицируем 2 скрипт
    [SerializeField]GameObject box;   //обьект с анимацией 
        Animator _animator;  // аниматор что содержит анимацию
        void Start()
        {
            _animator = box.GetComponent<Animator>(); // получаем с обьекта компонент 
            float animTime = _animator.GetCurrentAnimatorStateInfo(0).length; // получаем время воспроизведения анимации 
            Invoke(nameof(LoadNewScene), animTime+0.1f); // запускам переход метод перехода на другую сцену через время анимации +0.1 сек 
        }

    2) модифицируем 2 скрипт
    using UnityEngine;
    
    public class SceneSelect : MonoBehaviour
    {
        public void LoadNewScene()
        {
            Debug.Log("Loading");
            SceneWalker.SceneChanger("Scene2",1);
        }
    }

    Прикрепляем его к объекту с анимацией выбираем. Выбираем анимацию и добавляем Event в конец анимации
    673681c5bb905951609807.png
    Ответ написан
    1 комментарий