diff --git a/Editor/VRChat/ParameterIntrospection/IParameterProvider.cs b/Editor/VRChat/ParameterIntrospection/IParameterProvider.cs index f5df7e0..5d496fa 100644 --- a/Editor/VRChat/ParameterIntrospection/IParameterProvider.cs +++ b/Editor/VRChat/ParameterIntrospection/IParameterProvider.cs @@ -187,6 +187,22 @@ public bool IsAnimatorOnly /// public bool WantSynced { get; set; } + public IEnumerable SubParameters() + { + if (Namespace == ParameterNamespace.Animator) + { + return new ProvidedParameter[] { this }; + } + return new ProvidedParameter[] + { + new ProvidedParameter(OriginalName + "_IsGrabbed", ParameterNamespace.Animator, Source, Plugin, AnimatorControllerParameterType.Bool) { IsHidden = IsHidden, WantSynced = WantSynced }, + new ProvidedParameter(OriginalName + "_IsPosed", ParameterNamespace.Animator, Source, Plugin, AnimatorControllerParameterType.Bool) { IsHidden = IsHidden, WantSynced = WantSynced }, + new ProvidedParameter(OriginalName + "_Angle", ParameterNamespace.Animator, Source, Plugin, AnimatorControllerParameterType.Float) { IsHidden = IsHidden, WantSynced = WantSynced }, + new ProvidedParameter(OriginalName + "_Stretch", ParameterNamespace.Animator, Source, Plugin, AnimatorControllerParameterType.Float) { IsHidden = IsHidden, WantSynced = WantSynced }, + new ProvidedParameter(OriginalName + "_Squish", ParameterNamespace.Animator, Source, Plugin, AnimatorControllerParameterType.Float) { IsHidden = IsHidden, WantSynced = WantSynced }, + }; + } + public ProvidedParameter Clone() { return (ProvidedParameter)MemberwiseClone(); @@ -259,4 +275,4 @@ public interface IParameterProvider ; #endif } -} \ No newline at end of file +}