public void InitializeTerrain(int terrainId, bool IsShowTrigger, bool isInitNpcAI = true) { m_CurrentTerrainData = ConfigManager.Instance.GetTerrainEditorData(terrainId); if (null == m_CurrentTerrainData) { Debuger.LogError("error terrain id : " + terrainId); return; } if (null == m_TriggerMgr) { m_TriggerMgr = new TerrainTriggerManager(); } m_TriggerMgr.InitTerrainTrigger(m_CurrentTerrainData.TriggerDataList, IsShowTrigger); if (null == m_NpcMap) { m_NpcMap = new Dictionary <int, Npc>(m_CurrentTerrainData.NpcDataList.Count); } //init npc for (int i = 0; i < m_CurrentTerrainData.NpcDataList.Count; ++i) { TerrainNpcData elem = m_CurrentTerrainData.NpcDataList[i]; Npc newNpc = new Npc(); newNpc.Initialize(elem.Id); newNpc.GetTransformData().SetPosition(elem.Pos.GetVector3()); newNpc.GetTransformData().SetRotation(elem.Rot.GetVector3()); newNpc.GetTransformData().SetScale(elem.Scale.GetVector3()); newNpc.SetAIStatus(isInitNpcAI); m_NpcMap.Add(elem.Id, newNpc); } TerrainTickTask.Instance.RegisterToUpdateList(Update); TerrainTickTask.Instance.SetStatus(true); GameCamera.OpenClick = true; m_bIsActive = true; m_ActionState = new List <int>(); MessageDispatcher.Instance.RegistMessage(ClientCustomMessageDefine.C_ACTION_START, OnActionStar); MessageDispatcher.Instance.RegistMessage(ClientCustomMessageDefine.C_ACTION_FININSH, OnActionFinish); }
public void OpenTerrain(TerrainEditorData data) { ClearData(); m_bIsCreateNew = true; m_CurrentEditiongMapId = data.ID; m_CurrentEditiongMapName = data.MapName; m_MapNameInputBuffer = m_CurrentEditiongMapId.ToString(); m_ObjMap = ResourceManager.Instance.LoadBuildInResource <GameObject>(data.MapResName, AssetType.Map); for (int i = 0; data.TriggerDataList != null && i < data.TriggerDataList.Count; ++i) { TerrainTriggerData elem = data.TriggerDataList[i]; AddTrigger (elem.AreaType, elem.Pos.GetVector3(), elem.Rot.GetVector3(), elem.Scale.GetVector3(), elem.TargetMethodId, elem.EnterLimitMethodId, elem.ExitLimitMethodId, elem.EnterFuncMethodId, elem.ExitFuncMethodId ); } for (int i = 0; null != data.NpcDataList && i < data.NpcDataList.Count; ++i) { TerrainNpcData elem = data.NpcDataList[i]; AddNpc(elem.Id, elem.Pos.GetVector3(), elem.Rot.GetVector3(), elem.Scale.GetVector3()); } PlayerInitPosData pos = data.PlayerInitPos; if (null != pos) { CreatePlayerCharactor(pos.Id, pos.Pos.GetVector3(), pos.Rot.GetVector3()); } }