public void parseXml(XmlElement elem) { clear(); m_name = ExportUtil.getXmlAttrStr(elem.Attributes["name"]); m_pos = ExportUtil.getXmlAttrVector3(elem.Attributes["pos"]); // 解析没有动画文件的 State XmlNodeList noStateNodeList = elem.SelectNodes("State"); XmlElement stateElem = null; XmlState state = null; foreach (XmlNode stateNode in noStateNodeList) { stateElem = (XmlElement)stateNode; state = new XmlState(); state.stateMachine = this; m_noResStateList.Add(state); state.parseXml(stateElem); } // 解析有动画资源文件的 State XmlNodeList clipNodeList = elem.SelectNodes("Clip"); XmlElement clipElem = null; XmlClip _clip; foreach (XmlNode clipNode in clipNodeList) { clipElem = (XmlElement)clipNode; _clip = new XmlClip(); _clip.stateMachine = this; m_clipList.Add(_clip); _clip.parseXml(clipElem); } // 解析状态机中的转换 XmlNodeList tranNodeList = elem.SelectNodes("StateTransition"); XmlElement tranElem = null; XmlStateTransition _tran; foreach (XmlNode tranNode in tranNodeList) { tranElem = (XmlElement)tranNode; _tran = new XmlStateTransition(); _tran.stateMachine = this; m_tranList.Add(_tran); _tran.parseXml(tranElem); } }