// Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2023 Kybernetik // #pragma warning disable CS0649 // Field is never assigned to, and will always have its default value. using System; namespace Animancer { /// https://kybernetik.com.au/animancer/api/Animancer/ManualMixerState partial class ManualMixerState { /************************************************************************************************************************/ /// The number of parameters being managed by this state. protected virtual int ParameterCount => 0; /// Returns the name of a parameter being managed by this state. /// This state doesn't manage any parameters. protected virtual string GetParameterName(int index) => throw new NotSupportedException(); /// Returns the type of a parameter being managed by this state. /// This state doesn't manage any parameters. protected virtual UnityEngine.AnimatorControllerParameterType GetParameterType(int index) => throw new NotSupportedException(); /// Returns the value of a parameter being managed by this state. /// This state doesn't manage any parameters. protected virtual object GetParameterValue(int index) => throw new NotSupportedException(); /// Sets the value of a parameter being managed by this state. /// This state doesn't manage any parameters. protected virtual void SetParameterValue(int index, object value) => throw new NotSupportedException(); /************************************************************************************************************************/ #if UNITY_EDITOR /************************************************************************************************************************/ /// [Editor-Only] Returns a for this state. protected internal override Editor.IAnimancerNodeDrawer CreateDrawer() => new Drawer(this); /************************************************************************************************************************/ /// public class Drawer : Editor.ParametizedAnimancerStateDrawer where T : ManualMixerState { /************************************************************************************************************************/ /// Creates a new to manage the Inspector GUI for the `state`. public Drawer(T state) : base(state) { } /************************************************************************************************************************/ /// public override int ParameterCount => Target.ParameterCount; /// public override string GetParameterName(int index) => Target.GetParameterName(index); /// public override UnityEngine.AnimatorControllerParameterType GetParameterType(int index) => Target.GetParameterType(index); /// public override object GetParameterValue(int index) => Target.GetParameterValue(index); /// public override void SetParameterValue(int index, object value) => Target.SetParameterValue(index, value); /************************************************************************************************************************/ } /************************************************************************************************************************/ #endif /************************************************************************************************************************/ } }