示例#1
0
        /// <summary>
        /// Implements the SetTrigger() functionality for SpriterAnimator.
        /// </summary>
        /// <param name="param">The param to set.</param>
        /// <param name="value">The value to set.</param>
        void SpriterAnimatorSetTrigger(string param)
        {
            if (IsReady != true)
            {
                return;
            }

            AnimState currAnimState = currState;

            Assert.IsNotNull <AnimState>(currAnimState, "Something went wrong. The current animation wasn't found in the current layer!");

            // We need the bool name and bool value (true or false).
            int paramIdx = currAnimState.TriggerParamsList.FindIndex(x => x.Name == param);

            if (paramIdx < 0)
            {
                paramIdx = anyState.BoolParamsList.FindIndex(x => x.Name == param);
                if (paramIdx < 0)
                {
                    return;
                }
            }

            AnimState.TriggerParam triggerParam = currAnimState.TriggerParamsList[paramIdx];
            SpriterAnimatorPlay(triggerParam.NextState);
        }
示例#2
0
        /// <summary>
        /// Setup a trigger for a state.
        /// </summary>
        /// <param name="layer">The animator layer.</param>
        /// <param name="state">The state to setup.</param>
        /// <param name="param">The parameter name.</param>
        /// <param name="nextState">The next state to go.</param>
        public void SpriterAnimatorSetupStateTrigger(int layer, string state, string param, string nextState)
        {
            Assert.IsTrue(layer >= 0 && layer < spriterLayerAmount, "Invalid layer ID received: " + layer);
            AnimState animState = animStateList[layer].Find(x => x.Name == state);

            Assert.IsNotNull <AnimState>(animState, "The state wasn't found in the given layer!");
            Assert.IsTrue(param.Length > 0, "Invalid trigger parameter name: \"" + param + "\"");
            Assert.IsTrue(nextState.Length > 0, "Invalid next state name: \"" + param + "\"");
            Assert.IsTrue(animStateList[layer].Exists(x => x.Name == nextState), "The next state doesn't exist in the given layer. Layer: " + layer + " - State: " + nextState);

            AnimState.TriggerParam newParam = new AnimState.TriggerParam();
            newParam.Name      = param;
            newParam.NextState = nextState;
            animState.TriggerParamsList.Add(newParam);
        }