// 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;
/************************************************************************************************************************/
}
}