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;
}
}
Я понимаю, что написано не очень хорошо, но вопрос сейчас не в этом. С чуть большим опытом я смогу переписать это более правильно.
Это висит на объекте, внутри которого спавнится префаб. (Их будет больше, не два). Также на канвасе есть кнопки, по нажатию которых происходит смена анимаций, к каждой прикреплен запуск анимации.
Так вот, вопрос в том, как именно взять этот аниматор и передать скрипту с поведением анимаций? Где именно нужно брать аниматор у префабов? И как делать это в реальном времени?
Я понимаю, как все это реализовывать на старте игры, но совсем не понимаю, как заменять аниматор по ходу игры. Не вызывать же каждый раз это в апдейте...