Exemple #1
0
 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);
            }
        }
Exemple #3
0
        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);
 }