// Animancer // https://kybernetik.com.au/animancer // Copyright 2021 Kybernetik // using System; using UnityEngine; namespace Animancer { /// [Pro-Only] A which manages one float parameter. /// /// Documentation: Animator Controllers /// /// /// /// https://kybernetik.com.au/animancer/api/Animancer/Float1ControllerState /// public sealed class Float1ControllerState : ControllerState { /************************************************************************************************************************/ /// An that creates a . public new interface ITransition : ITransition { } /************************************************************************************************************************/ private ParameterID _ParameterID; /// The identifier of the parameter which will get and set. public new ParameterID ParameterID { get => _ParameterID; set { _ParameterID = value; _ParameterID.ValidateHasParameter(Controller, AnimatorControllerParameterType.Float); } } /// /// Gets and sets a float parameter in the using the /// . /// public float Parameter { get => Playable.GetFloat(_ParameterID.Hash); set => Playable.SetFloat(_ParameterID.Hash, value); } /************************************************************************************************************************/ /// Creates a new to play the `controller`. public Float1ControllerState(RuntimeAnimatorController controller, ParameterID parameter, bool keepStateOnStop = false) : base(controller, keepStateOnStop) { _ParameterID = parameter; _ParameterID.ValidateHasParameter(controller, AnimatorControllerParameterType.Float); } /************************************************************************************************************************/ /// public override int ParameterCount => 1; /// public override int GetParameterHash(int index) => _ParameterID; /************************************************************************************************************************/ } }