/// <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); }
/// <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); }