FSMState.DeleteTransition C# (CSharp) Method

DeleteTransition() public method

public DeleteTransition ( Transition, trans ) : void
trans Transition,
return void
    public void DeleteTransition(Transition trans)
    {
        if (trans == Transition.NullTransition)
        {
            Debug.LogError("FSMState ERROR: NullTransition is not allowed");
            return;
        }

        if (map.ContainsKey(trans))
        {
            map.Remove(trans);
            return;
        }
        Debug.LogError("FSMState ERROR: Transition " + trans.ToString() + " passed to " + stateID.ToString() +
                           " was not on the state's transition list");
    }

Usage Example

    /// <summary>
    /// Delete the specific transition in the state
    /// </summary>
    /// <param name="fsmStateName">The state name</param>
    /// <param name="fsmTransition">The specific transition</param>
    public void DeleteFSMStateToAnotherFSMStateTransition(string fsmStateName, FSMTransition fsmTransition)
    {
        //convert the state name to hash value,to improve performance
        string fsmStateNameHash = HashTool.StringToHash(fsmStateName);

        FSMState fsmState = null;

        bool fsmStateExist = m_FSMStateDic.TryGetValue(fsmStateNameHash, out fsmState);

        if (fsmStateExist == true)
        {
            fsmState.DeleteTransition(fsmTransition);
        }
        else
        {
            Debug.LogErrorFormat("The fsmStateName:{0} is not exist", fsmStateName);
        }
    }