Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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());
        }
    }