public virtual void Init()
        {
            animator = GetComponent <Animator>();
            if (animator)
            {
                hitDirectionHash      = new AnimatorParameter(animator, "HitDirection");
                reactionIDHash        = new AnimatorParameter(animator, "ReactionID");
                triggerReactionHash   = new AnimatorParameter(animator, "TriggerReaction");
                triggerResetStateHash = new AnimatorParameter(animator, "ResetState");
                recoilIDHash          = new AnimatorParameter(animator, "RecoilID");
                triggerRecoilHash     = new AnimatorParameter(animator, "TriggerRecoil");
            }

            var actionListeners = GetComponents <vActions.vActionListener>();

            for (int i = 0; i < actionListeners.Length; i++)
            {
                if (actionListeners[i].actionEnter)
                {
                    onActionEnter.AddListener(actionListeners[i].OnActionEnter);
                }
                if (actionListeners[i].actionStay)
                {
                    onActionStay.AddListener(actionListeners[i].OnActionStay);
                }
                if (actionListeners[i].actionExit)
                {
                    onActionExit.AddListener(actionListeners[i].OnActionExit);
                }
            }
        }
    /// <summary>
    /// Based on the type of animator state info pass it through to the animator
    /// </summary>
    /// <param name="animationParameter"></param>
    protected void SetAnimatorParameter(AnimatorParameter animationParameter)
    {
        // Return if we do not have an animator
        if (CursorAnimator == null)
        {
            return;
        }

        switch (animationParameter.Type)
        {
        case AnimatorControllerParameterType.Bool:
            CursorAnimator.SetBool(animationParameter.NameHash, animationParameter.DefaultBool);
            break;

        case AnimatorControllerParameterType.Float:
            CursorAnimator.SetFloat(animationParameter.NameHash, animationParameter.DefaultFloat);
            break;

        case AnimatorControllerParameterType.Int:
            CursorAnimator.SetInteger(animationParameter.NameHash, animationParameter.DefaultInt);
            break;

        case AnimatorControllerParameterType.Trigger:
            CursorAnimator.SetTrigger(animationParameter.NameHash);
            break;
        }
    }
Beispiel #3
0
        public static void SetParameter(this Animator animator, AnimatorParameter parameter)
        {
            var paramId = Animator.StringToHash(parameter.name);

            switch (parameter.type)
            {
            case AnimatorParameter.AnimatorParamType.Int:
                animator.SetInteger(paramId, parameter.intValue);
                break;

            case AnimatorParameter.AnimatorParamType.Float:
                animator.SetFloat(paramId, parameter.floatValue);
                break;

            case AnimatorParameter.AnimatorParamType.Bool:
                animator.SetBool(paramId, parameter.boolValue);
                break;

            case AnimatorParameter.AnimatorParamType.Trigger:
                animator.SetTrigger(paramId);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Beispiel #4
0
        /// <summary>
        /// Based on the type of animator state info pass it through to the animator
        /// </summary>
        /// <param name="animationParameter"></param>
        private void SetAnimatorParameter(AnimatorParameter animationParameter)
        {
            // Return if we do not have an animator
            if (cursorAnimator == null || !cursorAnimator.isInitialized)
            {
                return;
            }

            switch (animationParameter.ParameterType)
            {
            case AnimatorControllerParameterType.Bool:
                cursorAnimator.SetBool(animationParameter.NameHash, animationParameter.DefaultBool);
                break;

            case AnimatorControllerParameterType.Float:
                cursorAnimator.SetFloat(animationParameter.NameHash, animationParameter.DefaultFloat);
                break;

            case AnimatorControllerParameterType.Int:
                cursorAnimator.SetInteger(animationParameter.NameHash, animationParameter.DefaultInt);
                break;

            case AnimatorControllerParameterType.Trigger:
                cursorAnimator.SetTrigger(animationParameter.NameHash);
                break;
            }
        }
Beispiel #5
0
        public AnimatorParameter GetParameters(string parameterName)
        {
            AnimatorParameter result = null;

            _Parameters.TryGetValue(parameterName, out result);
            return(result);
        }
Beispiel #6
0
 static void CreateContextMenu(MenuCommand menuCommand)
 {
     if (CheckMenu())
     {
         AnimatorParameter p = AutoPipe.CreateGameObjectWithComponent <AnimatorParameter>(menuCommand);
         p.animator = (menuCommand.context as GameObject).GetComponent <Animator>();
     }
 }
Beispiel #7
0
 public void CacheParameters()
 {
     parameterCache = new AnimatorParameter[animator.parameters.Length];
     for (int i = 0; i < animator.parameters.Length; i++)
     {
         AnimatorControllerParameter paramInfo = animator.parameters[i];
         parameterCache[i] = new AnimatorParameter(animator, paramInfo.type, paramInfo.name);
     }
 }
Beispiel #8
0
 public static List <AnimatorParameter> MapAnimatorToParameters(this Animator animator, List <AnimatorParameter> parameters)
 {
     for (int i = 0; i < animator.parameters.Length; i++)
     {
         var p  = animator.parameters[i];
         var ap = new AnimatorParameter(animator, p.name, p.type);
         parameters.Add(ap);
     }
     return(parameters);
 }
Beispiel #9
0
 public AnimatorParameter AddParameter(AssetParameter.Parameter pam)
 {
     if (!m_Params.ContainsKey(pam.name))
     {
         AnimatorParameter item = new AnimatorParameter(pam, m_Params.Count);
         m_Params.Add(item.name, item);
         m_ParamList.Add(item);
     }
     return(m_Params[pam.name]);
 }
        /// <inheritdoc />
        protected override void RenderMemberControl(Rect position)
        {
            var options = GetNameOptions();

            DropdownOption <AnimatorParameter> selectedOption = null;
            DropdownOption <AnimatorParameter> noneOption     = new DropdownOption <AnimatorParameter>(null, "No Parameter");

            AnimatorParameter value = GetValue();

            if (value != null)
            {
                string label = value.name;

                AnimatorParameter valueInOptions = options.Select(option => option.value).FirstOrDefault(ap => ap.Corresponds(value));

                if (valueInOptions != null)
                {
                    selectedOption = new DropdownOption <AnimatorParameter>(valueInOptions, label);
                }
                else
                {
                    selectedOption = new DropdownOption <AnimatorParameter>(value, label);
                }
            }

            // Make sure the callback uses the property of this drawer, not at its later value.
            var propertyNow = property;

            bool enabled = targets.Any(target => target != null);

            if (!enabled)
            {
                EditorGUI.BeginDisabledGroup(true);
            }

            DropdownGUI <AnimatorParameter> .PopupSingle
            (
                position,
                newValue =>
            {
                Update(propertyNow);
                SetValue(newValue);
                propertyNow.serializedObject.ApplyModifiedProperties();
            },
                options,
                selectedOption,
                noneOption,
                nameProperty.hasMultipleDifferentValues
            );

            if (!enabled)
            {
                EditorGUI.EndDisabledGroup();
            }
        }
 /// <summary>
 /// Assigns the property values from a specified animator parameter.
 /// </summary>
 protected void SetValue(AnimatorParameter value)
 {
     if (value != null)
     {
         nameProperty.stringValue = value.name;
     }
     else
     {
         nameProperty.stringValue = null;
     }
 }
Beispiel #12
0
    ValueDropdownList <string> GetAnimatorParameters()
    {
        var list = new ValueDropdownList <string>();
        var anim = GetCurrentController();

        if (!anim)
        {
            list.Add(ConditionalValue);
        }
        else
        {
            foreach (var param in anim.parameters)
            {
                dynamic newParam;

                switch (param.type)
                {
                case AnimatorControllerParameterType.Float:
                    newParam = new AnimatorParameter <float>();
                    break;

                case AnimatorControllerParameterType.Int:
                    newParam = new AnimatorParameter <int>();
                    break;

                case AnimatorControllerParameterType.Bool:
                    newParam = new AnimatorParameter <bool>();
                    break;

                case AnimatorControllerParameterType.Trigger:
                    continue;

                default:
                    continue;
                }

                list.Add(newParam, param.name);
            }
        }

        return(list);
    }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="name">Name of the animation state for the cursor.</param>
 /// <param name="cursorState">The enum state for the cursor's animation.</param>
 /// <param name="parameter">The linked animation parameter to used for the cursor state.</param>
 public AnimatedCursorData(string name, CursorStateEnum cursorState, AnimatorParameter parameter)
 {
     this.name        = name;
     this.cursorState = cursorState;
     this.parameter   = parameter;
 }
 public void SetFloat(AnimatorParameter param, float value) => SetFloat(animator, param, value);
Beispiel #15
0
 public AnimatorParameterAttribute(AnimatorParameter type)
 {
     this.type = type;
 }
 /// <summary>
 /// Assigns the property values from a specified animator parameter.
 /// </summary>
 protected void SetValue(AnimatorParameter value)
 {
     if (value != null)
     {
         nameProperty.stringValue = value.name;
     }
     else
     {
         nameProperty.stringValue = null;
     }
 }
 public void SetFloat(Animator anim, AnimatorParameter param, float value) => SetAnimatorFloat(anim, param.ID, value);
 public int GetInteger(AnimatorParameter param) => GetInteger(animator, param);
 public void SetInteger(Animator anim, AnimatorParameter param, int value) => SetAnimatorInteger(anim, param.ID, value);
 public void SetBool(AnimatorParameter param, bool value) => SetBool(animator, param, value);
 public void SetBool(Animator anim, AnimatorParameter param, bool value) => SetAnimatorBool(anim, param.ID, value);
 public void SetTrigger(AnimatorParameter param) => SetTrigger(animator, param);
 public void SetTrigger(Animator anim, AnimatorParameter param) => SetAnimatorTrigger(anim, param.ID);
 public float GetFloat(Animator anim, AnimatorParameter param) => GetAnimatorFloat(anim, param.ID);
 public bool GetBool(AnimatorParameter param) => GetBool(animator, param);
 public int GetInteger(Animator anim, AnimatorParameter param) => GetAnimatorInteger(anim, param.ID);
	public AnimatorParameterAttribute(AnimatorParameter type){
		this.type = type;
	}
 public void SetInteger(AnimatorParameter param, int value) => SetInteger(animator, param, value);
 public float GetFloat(AnimatorParameter param) => GetFloat(animator, param);
 public bool GetBool(Animator anim, AnimatorParameter param) => GetAnimatorBool(anim, param.ID);