Ситуация
У меня есть класс компонента SetTrigger : MonoBehaviour
.Это долго и не имеет значения для размещения кода здесь.В нем я могу выбрать строковое значение _targetTrigger
из всех параметров триггера, на которые я ссылаюсь Animator
.
Чем у меня есть кнопка GameObject
с несколькими из этих SetTrigger
компонентов, так чтоЯ могу выбрать несколько Триггеров из нескольких Animator
с.
Итак, скажем, у меня есть 2 SetTrigger
компонента, ссылающиеся на то же самое Animator
на моем объекте кнопки (который также имеет Button
компонент).
- На одном я установил
_targetTrigger
на StartButton
. - На другом я установил
_targetTrigger
на Initialize
.
Чем я добавил оба к onClick
компонента Button
в инспекторе, вызывающем метод Set
(который устанавливает триггер по имени _targetTrigger
для ссылочной Animator
, используя animator.SetTrigger(_targetTrigger)
).
Таким образом, я ожидал бы, что оба Триггера, StartButton
и Initialize
будут установлены (это работало раньше, когда я устанавливал оба Триггера, делая это "обычным" способом, используя только непосредственно Animator.SetTrigger(string)
).
Проблема
Когда я нажимаю Button
, метод SetTrigger.Set()
вызывается только со значением StartButton
, но дважды,
Это заставляет меня думать, что, по-видимому, компонент Button
использует только первое столкновение с SetTrigger
в GameObject для обеих записей onClick
(вероятно, внутреннее, для этого используется что-то вроде GetComponent
).
(Как) Можно ли использовать несколько компонентов одного типа, но с разными значениями для onClick
для Button
?
Edit
Я заметил, что он, конечно, может получить только один компонент, так как уже во всплывающем окне выбора компонента / метода в onClick
кнопки есть только одна запись SetTrigger
, хотя у меня есть компонент дважды ...
На данный момент у меня есть альтернативные решения / обходные пути:
У меня есть один дочерний GameObject для каждого требуемого триггера, каждый из которых имеет только один SetTrigger
и ссылается на них.(Не очень).
Переписать компонент SetTrigger
, чтобы вместо него использовать список триггеров.Имейте только этот один компонент.
Мне больше нравится второй, но теперь я должен переписать весь сценарий инспектора для него, а также с использованием ReorderableList, и это также очень тяжело для того, чтобы иметь несколько триггеров ...