示例#1
0
        /// <summary>
        /// Implements the SetBool() functionality for SpriterAnimator.
        /// </summary>
        /// <param name="param">The param to set.</param>
        /// <param name="value">The value to set.</param>
        void SpriterAnimatorSetBool(string param, bool value)
        {
            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.BoolParamsList.FindIndex(x => (x.Name == param && x.Value == value));

            if (paramIdx < 0)
            {
                paramIdx = anyState.BoolParamsList.FindIndex(x => (x.Name == param && x.Value == value));
                if (paramIdx >= 0)
                {
                    currAnimState = anyState;
                }
                else
                {
                    return;
                }
            }
            //Debug.Log("currAnim B: " + currAnimState.Name + " - idx: " + paramIdx + " - boolParamCount: " + currAnimState.BoolParamsList.Count);

            AnimState.BoolParam boolParam = currAnimState.BoolParamsList[paramIdx];
            SpriterAnimatorPlay(boolParam.NextState);
        }
示例#2
0
        /// <summary>
        /// Setup a bool 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="value">The parameter value.</param>
        /// <param name="nextState">The next state to go.</param>
        public void SpriterAnimatorSetupStateBool(int layer, string state, string param, bool value, 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 bool 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.BoolParam newParam = new AnimState.BoolParam();
            newParam.Name      = param;
            newParam.Value     = value;
            newParam.NextState = nextState;
            animState.BoolParamsList.Add(newParam);
        }