public void DestroyOldDynamicGuideRoot(TBTWorkingData wData) { if (m_GuideDynamicRoot != null) { m_GuideDynamicRoot.Destroy(wData); m_GuideDynamicRoot = null; (wData as GuideWorkingData).GuideDynamicBB.Reset(); } }
public void CreateNewDynamicGuideRoot(TBTWorkingData wData) { if (m_GuideDynamicRoot == null) { GuideWorkingData data = wData as GuideWorkingData; if (data != null && data.GuideDynamicBB != null) { int GuideStateID = data.GuideStateBB.GetValue <int>(EGuideStateBBKey.GuideStateID, -1); SSchemeGuideStateData stateData = GetGuideStateData(GuideStateID); if (stateData != null) { m_GuideDynamicRoot = CreateDynamicRoot(stateData.GuideRootType); for (int j = 0; j < stateData.GuideNodeIDList.Count; ++j) { EGuideNodeID guideNodeID = (EGuideNodeID)stateData.GuideNodeIDList[j]; SSchemeGuideNodeData guideNodeData = null; if (dicGuideConfigTable.TryGetValue(guideNodeID, out guideNodeData)) { //先根据引导节点需要挂接的父节点类型处理 EGuideActionLayerType layerType = (EGuideActionLayerType)guideNodeData.nGuideActionLayerType; TBTAction layerTypeAction = null; if (!m_GuideDynamicRoot.TryGetLayerTypeAction(layerType, out layerTypeAction)) { layerTypeAction = CreateLayerTypeAction(layerType); m_GuideDynamicRoot.AddChild(layerTypeAction); } layerTypeAction.AddChild(getNodeDataInstance(guideNodeID)); } else { Trace.LogWarning("没有引导ID为:" + guideNodeID + " 的引导数据,配错了?"); } } } } } }