Unity. Создать префаб, получить его компонент аниматор и передать его в другой скрипт

Я создала скрипт, который по нажатию соответствующей кнопки меняет один префаб на другой. У каждого из этих префабов есть свой компонент аниматора.

Также есть отдельный скрипт, где описано поведение анимаций. Каждый из префабов имеет похожий набор анимаций, состоящий из смены спрайтов. У префабов спрайты разные, поэтому анимации тоже для каждого свои, но довольно однотипные, и названия я им задала одинаковые на каждое поведение. В этом скрипте содержатся события по нажатию кнопок. Нажимаю на первую кнопку - проигрывается анимация1, на вторую - анимация2, и тд.

Вопрос в том, как мне при создании префаба взять аниматор этого префаба так, чтобы он передавался в скрипт, отвечающий за анимации.

Я пробовала делать это с помощью событий, но ничего не работало. Возможно делала что-то неправильно, но к сожалению тот вариант скрипта уже удален.

Вот часть скрипта, отвечающая за создание префабов:

private void CreateGirl(int index)
        {
            if (_currentGirl != null) Destroy(_currentGirl);
            switch (index)
            {
                case 1:
                    _girl1Clone = Instantiate(_girlPrefabs1, parent.transform);
                    _currentGirl = _girl1Clone;
                    girlAnimator = _currentGirl.GetComponent<Animator>();
                    break;
                case 2:
                    _girl2Clone = Instantiate(_girlPrefabs2, parent.transform);
                    _currentGirl = _girl2Clone;
                    girlAnimator = _currentGirl.GetComponent<Animator>();
                    break;
            }
        }

Я понимаю, что написано не очень хорошо, но вопрос сейчас не в этом. С чуть большим опытом я смогу переписать это более правильно.

Это висит на объекте, внутри которого спавнится префаб. (Их будет больше, не два). Также на канвасе есть кнопки, по нажатию которых происходит смена анимаций, к каждой прикреплен запуск анимации.

Так вот, вопрос в том, как именно взять этот аниматор и передать скрипту с поведением анимаций? Где именно нужно брать аниматор у префабов? И как делать это в реальном времени?

Я понимаю, как все это реализовывать на старте игры, но совсем не понимаю, как заменять аниматор по ходу игры. Не вызывать же каждый раз это в апдейте...


Ответы (0 шт):