66 lines
1.8 KiB
C#
66 lines
1.8 KiB
C#
using UnityEngine;
|
|
namespace Invector
|
|
{
|
|
public class vAnimatorParameter
|
|
{
|
|
readonly AnimatorControllerParameter _parameter;
|
|
|
|
public static implicit operator int(vAnimatorParameter a)
|
|
{
|
|
if (a.isValid) return a._parameter.nameHash;
|
|
else
|
|
return -1;
|
|
}
|
|
|
|
public readonly bool isValid;
|
|
|
|
public vAnimatorParameter(Animator animator, string parameter)
|
|
{
|
|
if (animator && animator.ContainsParam(parameter))
|
|
{
|
|
_parameter = animator.GetValidParameter(parameter);
|
|
this.isValid = true;
|
|
}
|
|
|
|
else this.isValid = false;
|
|
}
|
|
}
|
|
public static class vAnimatorParameterHelper
|
|
{
|
|
public static AnimatorControllerParameter GetValidParameter(this Animator _Anim, string _ParamName)
|
|
{
|
|
foreach (AnimatorControllerParameter param in _Anim.parameters)
|
|
{
|
|
if (param.name == _ParamName) return param;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static bool ContainsParam(this Animator _Anim, string _ParamName)
|
|
{
|
|
foreach (AnimatorControllerParameter param in _Anim.parameters)
|
|
{
|
|
if (param.name == _ParamName) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public static bool HasParameterOfType(this Animator self, string name, AnimatorControllerParameterType type)
|
|
{
|
|
if (null == self)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var parameters = self.parameters;
|
|
foreach (var currParam in parameters)
|
|
{
|
|
if (currParam.type == type && currParam.name == name)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
} |