示例#1
0
    private void SelectState(int index, bool isPlay = true)
    {
        if (m_curFsmStateSet == null)
        {
            return;
        }

        m_selectedStateIndex = index;
        if (m_selectedStateIndex >= 0 && m_selectedStateIndex < m_curFsmStateSet.stateElementList.Count)
        {
            m_selectFsmStateElement = m_curFsmStateSet.stateElementList[m_selectedStateIndex];

            if (isPlay)
            {
                CurrentStatePlay();
            }

            //if (m_actorLook.Fsm.EventStates != null)
            //{
            //    AnimationEventState state = m_actorLook.Fsm.EventStates.GetState(m_selectFsmStateElement.StateName);
            //    SubCharacterStateViewer subCharacterStateViewer = m_characterViewerDic[eViewType.State] as SubCharacterStateViewer;
            //    subCharacterStateViewer.SetState(state, m_selectFsmStateElement);
            //}
        }
    }
示例#2
0
    private void OnDisableCharacterView()
    {
        m_isRefreshGlobalManager = false;

        foreach (KeyValuePair <eViewType, ISubCharacterViewer> keyValuePair in m_characterViewerDic)
        {
            keyValuePair.Value.OnDisable();
        }

        m_curFsmStateSet        = null;
        m_selectFsmStateElement = null;
        m_actorInfoList.Clear();
        m_characterViewerDic.Clear();
        if (m_actorRootLook != null)
        {
            Global.CameraMgr.DestoryTarget();
            Global.GameMgr.DestroyCombat(m_actorRootLook.Uid);
            m_actorRootLook = null;

            if (m_currentSubCharacterViewer != null)
            {
                m_currentSubCharacterViewer.ChangeActor(null);
            }
        }
    }
示例#3
0
 private FSMStateElement GetElement(string stateName)
 {
     for (int i = 0; i < stateElementList.Count; ++i)
     {
         FSMStateElement element = stateElementList[i];
         if (element.StateName == stateName)
         {
             return(element);
         }
     }
     return(null);
 }
示例#4
0
 public void SelectState(string name)
 {
     for (int i = 0; i < m_curFsmStateSet.stateElementList.Count; i++)
     {
         if (m_curFsmStateSet.stateElementList[i].StateName.Equals(name))
         {
             m_selectedStateIndex    = i;
             m_selectFsmStateElement = m_curFsmStateSet.stateElementList[m_selectedStateIndex];
             CurrentStatePlay();
             break;
         }
     }
 }
示例#5
0
    //public void AddElement(FsmState state)
    //{
    //    FSMStateElement element = GetElement(state.Name);
    //    if (element != null)
    //        return;

    //    element = new FSMStateElement();
    //    //element.State = state;
    //    element.StateName = state.Name;
    //    element.LstGlobalTransition = new List<string>();
    //    element.LstTransition = new List<string>();
    //    element.AnimationLength = state.AnimLength;
    //    element.AnimationName = state.m_destAnimation.Value;
    //    element.Loop = state.looping;
    //    element.skillChain = false;
    //    for (int i = 0; i < state.Actions.Length; i++)
    //    {
    //        //if (state.Actions[i] is PawnSkillChainAction)
    //        //{
    //        //	element.skillChain = true;
    //        //	break;
    //        //}
    //    }

    //    for (int i = 0; i < state.Transitions.Length; i++)
    //    {
    //        FsmTransition transition = state.Transitions[i];
    //        element.LstTransition.Add(transition.EventName);
    //    }

    //    stateElementList.Add(element);
    //}

    public void Sort()
    {
        stateElementList.Sort(delegate(FSMStateElement fsmStateElement1, FSMStateElement fsmStateElement2)
        {
            return(fsmStateElement1.StateName.CompareTo(fsmStateElement2.StateName));
        });

        for (int i = 0; i < stateElementList.Count; i++)
        {
            FSMStateElement stateElement = stateElementList[i];
            stateElement.LstTransition.Sort();
            stateElement.LstGlobalTransition.Sort();
        }
    }
示例#6
0
    private void UpdateFSMStateList()
    {
        if (m_actorRootLook != null)
        {
            if (null != m_curFsmStateSet)
            {
                m_curFsmStateSet.Clear();
            }

            //m_curFsmStateSet.name = m_actorLook.Fsm.PlayMaker.FsmName;
            //foreach (FsmState state in m_actorLook.Fsm.PlayMaker.FsmStates)
            //{
            //    m_curFsmStateSet.AddElement(state);
            //}
            m_curFsmStateSet.Sort();

            m_selectedStateIndex           = 0;
            m_selectedStateTransitionIndex = 0;
            m_stateScrollPosition          = Vector2.zero;
            m_selectFsmStateElement        = null;
        }
    }