Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public void ApplyOverrides(IList> overrides);

Параметры

overrides Список переопределений для применения.

Описание

Применяет список переопределений к этому контроллеру переопределения Animator.

Эту функцию следует использовать, как только вам нужно переопределить более двух анимационных клипов в одном кадре. Функция уведомит аниматора об обновлении всех внутренних привязок после обработки всего списка.

using UnityEngine; using System.Collections.Generic; public class AnimationClipOverrides : ListAnimationClip, AnimationClip>> { public AnimationClipOverrides(int capacity) : base(capacity) {} public AnimationClip this[string name] { get { return this.Find(x => x.Key.name.Equals(name)).Value; } set { int index = this.FindIndex(x => x.Key.name.Equals(name)); if (index != -1) this[index] = new KeyValuePair<AnimationClip, AnimationClip>(this[index].Key, value); } } } public class Weapon { public AnimationClip singleAttack; public AnimationClip comboAttack; public AnimationClip dashAttack; public AnimationClip smashAttack; } public class SwapWeapon : MonoBehaviour { public Weapon[] weapons; protected Animator animator; protected AnimatorOverrideController animatorOverrideController; protected int weaponIndex; protected AnimationClipOverrides clipOverrides; public void Start() { animator = GetComponent<Animator>(); weaponIndex = 0; animatorOverrideController = new AnimatorOverrideController(animator.runtimeAnimatorController); animator.runtimeAnimatorController = animatorOverrideController; clipOverrides = new AnimationClipOverrides(animatorOverrideController.overridesCount); animatorOverrideController.GetOverrides(clipOverrides); } public void Update() { if (Input.GetButtonDown("NextWeapon")) { weaponIndex = (weaponIndex + 1) % weapons.Length; clipOverrides["SingleAttack"] = weapons[weaponIndex].singleAttack; clipOverrides["ComboAttack"] = weapons[weaponIndex].comboAttack; clipOverrides["DashAttack"] = weapons[weaponIndex].dashAttack; clipOverrides["SmashAttack"] = weapons[weaponIndex].smashAttack; animatorOverrideController.ApplyOverrides(clipOverrides); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3