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