Beispiel #1
0
    //行为:
    //维护列表(增加,删除,查找(根据转换条件查输出状态))

    /// <summary>
    /// 添加条件
    /// </summary>
    /// <param name="triggerId"></param>
    /// <param name="stateId"></param>
    public void AddTrigger(FSMTriggerID triggerId, FSMStateID stateId)
    {
        if (!map.ContainsKey(triggerId))
        {
            map.Add(triggerId, stateId);
            var type = Type.GetType("NPCAI.FSM." + triggerId.ToString() + "Trigger");
            if (type != null) //有条件触发器的话,就创建条件触发器
            {
                var trigger = Activator.CreateInstance(type) as FSMTrigger;
                triggers.Add(trigger);
            }
        }
        else
        {
            map[triggerId] = stateId;
        }
    }