public AnimationParamSerialiazable[] GetInitialParameters() { AnimationParamSerialiazable[] param = new AnimationParamSerialiazable[parameters.Length]; for (int i = 0; i < parameters.Length; i++) { param[i] = new AnimationParamSerialiazable(); parameters[i].CopyTo(param[i]); } return(parameters); }
//--------------------------------------------------------------------- // Helpers //--------------------------------------------------------------------- private static void OnTrigger(Animator animatorToUSe, AnimationParamSerialiazable parameter) { if (parameter.triggerValue) { animatorToUSe.SetTrigger(parameter.nameHash); } else { animatorToUSe.ResetTrigger(parameter.nameHash); } }
void IStateEditoHelper.CopyParamsFrom(UnityEditor.Animations.AnimatorController animatorToCpyParametersfrom) { // This SHould Be in IState! if (animatorToCpyParametersfrom != null) { editorHelperDictionary.Clear(); editorHelperList.Clear(); editorHelperList.AddRange(parameters); foreach (var item in editorHelperList) { editorHelperDictionary.Add(item.keyName, item); } // Save previous var dictCopy = new Dictionary <string, AnimationParamSerialiazable>(); foreach (var item in editorHelperDictionary) { var copy = new AnimationParamSerialiazable(); item.Value.CopyTo(copy); dictCopy.Add(item.Value.keyName, copy); } editorHelperList.Clear(); AnimationParamSerialiazable temporalParam = null; for (int i = 0; i < animatorToCpyParametersfrom.parameters.Length; i++) { if (!editorHelperDictionary.TryGetValue(animatorToCpyParametersfrom.parameters[i].name, out temporalParam)) { temporalParam = new AnimationParamSerialiazable(); } temporalParam.boolValue = animatorToCpyParametersfrom.parameters[i].defaultBool; temporalParam.floatValue = animatorToCpyParametersfrom.parameters[i].defaultFloat; temporalParam.intValue = animatorToCpyParametersfrom.parameters[i].defaultInt; temporalParam.keyName = animatorToCpyParametersfrom.parameters[i].name; temporalParam.nameHash = animatorToCpyParametersfrom.parameters[i].nameHash; switch (animatorToCpyParametersfrom.parameters[i].type) { case AnimatorControllerParameterType.Float: temporalParam.type = AnimationParamSerialiazable.AnimationType.Float; break; case AnimatorControllerParameterType.Int: temporalParam.type = AnimationParamSerialiazable.AnimationType.Int; break; case AnimatorControllerParameterType.Bool: temporalParam.type = AnimationParamSerialiazable.AnimationType.Bool; break; case AnimatorControllerParameterType.Trigger: temporalParam.type = AnimationParamSerialiazable.AnimationType.Trigger; break; } if (dictCopy.TryGetValue(animatorToCpyParametersfrom.parameters[i].name, out var prevValue) && prevValue != null) { temporalParam.boolValue = prevValue.boolValue; temporalParam.floatValue = prevValue.floatValue; temporalParam.intValue = prevValue.intValue; } editorHelperList.Add(temporalParam); } parameters = editorHelperList.ToArray(); } }
private static void OnLayerWeight(Animator animatorToUSe, AnimationParamSerialiazable parameter) { animatorToUSe.SetLayerWeight(parameter.indexOfLayer, parameter.floatValue); }
private static void OnInt(Animator animatorToUSe, AnimationParamSerialiazable parameter) { animatorToUSe.SetInteger(parameter.nameHash, parameter.intValue); }
private static void OnFloat(Animator animatorToUSe, AnimationParamSerialiazable parameter) { animatorToUSe.SetFloat(parameter.nameHash, parameter.floatValue); }
private static void OnBool(Animator animatorToUSe, AnimationParamSerialiazable parameter) { animatorToUSe.SetBool(parameter.nameHash, parameter.boolValue); }