|
| 1 | +# AnimatorParameterDriver |
| 2 | + |
| 3 | +Компонент для **удобного изменения параметров Animator** из кода и через UnityEvent: триггер, bool, float, int. Имя параметра можно задать в переменной в инспекторе — тогда метод принимает только значение (удобно для UnityEvent). |
| 4 | + |
| 5 | +## Поля |
| 6 | + |
| 7 | +| Поле | Описание | |
| 8 | +|------|----------| |
| 9 | +| **Animator** | Целевой Animator. Если не задан — берётся с этого объекта. | |
| 10 | +| **Trigger Parameter Name** | Имя триггера для метода **SetTrigger()** без аргумента. | |
| 11 | +| **Bool Parameter Name** | Имя bool-параметра для **SetBool(bool)**. | |
| 12 | +| **Float Parameter Name** | Имя float-параметра для **SetFloat(float)**. | |
| 13 | +| **Int Parameter Name** | Имя int-параметра для **SetInt(int)**. | |
| 14 | + |
| 15 | +## API |
| 16 | + |
| 17 | +**Методы с именем в переменной** (имя задаётся в инспекторе, метод — только значение): |
| 18 | + |
| 19 | +| Метод | Описание | |
| 20 | +|-------|----------| |
| 21 | +| **SetTrigger()** | Вызвать триггер из поля Trigger Parameter Name. | |
| 22 | +| **SetBool(bool value)** | Установить bool по полю Bool Parameter Name. | |
| 23 | +| **SetFloat(float value)** | Установить float по полю Float Parameter Name. | |
| 24 | +| **SetInt(int value)** | Установить int по полю Int Parameter Name. | |
| 25 | + |
| 26 | +**Методы с именем в аргументе**: |
| 27 | + |
| 28 | +| Метод | Описание | |
| 29 | +|-------|----------| |
| 30 | +| **SetTrigger(string triggerName)** | Вызвать триггер по имени. | |
| 31 | +| **SetBool(string parameterName, bool value)** | Установить bool-параметр. | |
| 32 | +| **SetBoolTrue(string parameterName)** / **SetBoolFalse(string parameterName)** | Установить bool = true/false. | |
| 33 | +| **SetFloat(string parameterName, float value)** | Установить float-параметр. | |
| 34 | +| **SetInt(string parameterName, int value)** | Установить int-параметр. | |
| 35 | + |
| 36 | +## Пример: имя в переменной |
| 37 | + |
| 38 | +В инспекторе задайте **Trigger Parameter Name** = `"Attack"`. Тогда из кнопки или кода можно вызвать **SetTrigger()** без аргументов — сработает триггер "Attack". Аналогично: **Bool Parameter Name** = `"IsRunning"` и вызов **SetBool(bool)** — в UnityEvent передаёте только значение (true/false). |
| 39 | + |
| 40 | +```csharp |
| 41 | +driver.SetTrigger(); // триггер из triggerParameterName |
| 42 | +driver.SetBool(true); // bool из boolParameterName |
| 43 | +driver.SetFloat(1.5f); // float из floatParameterName |
| 44 | +driver.SetInt(2); // int из intParameterName |
| 45 | +``` |
| 46 | + |
| 47 | +## Пример: имя в аргументе |
| 48 | + |
| 49 | +```csharp |
| 50 | +driver.SetTrigger("Attack"); |
| 51 | +driver.SetBool("IsRunning", true); |
| 52 | +driver.SetFloat("Speed", 1.5f); |
| 53 | +driver.SetInt("State", 2); |
| 54 | +``` |
| 55 | + |
| 56 | +Имена параметров должны совпадать с именами в окне Animator (Parameters). |
0 commit comments