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