Esempio n. 1
0
        public bool GetPortalByDestMapId(int id, ref Vector3 pos)
        {
            HolderPortal pHolder = (HolderPortal)GetHolder(MapHolderType.Portal);

            for (int i = 0; i < pHolder.Elements.Count; i++)
            {
                LevelPortal p = pHolder.Elements[i];
                if (p.DestMapID == id && p.Region != null)
                {
                    pos = p.Region.Position;
                    return(true);
                }
            }
            return(false);
        }
Esempio n. 2
0
        private void InitLevelObject()
        {
            //触发区域
            for (int i = 0; i < Config.Regions.Count; i++)
            {
                MapRegion data = Config.Regions[i];
                if (data.StartActive)
                {
                    LevelElement pHolder = GetHolder(MapHolderType.Region);
                    GameObject   go      = pHolder.gameObject.AddChild();
                    LevelRegion  pRegion = go.AddComponent <LevelRegion>();
                    pRegion.Import(data, false);
                    pRegion.Init();
                }
            }

            //障碍物
            for (int i = 0; i < Config.Barriers.Count; i++)
            {
                MapBarrier   data     = Config.Barriers[i];
                LevelElement pHolder  = GetHolder(MapHolderType.Barrier);
                GameObject   go       = pHolder.gameObject.AddChild();
                LevelBarrier pBarrier = go.AddComponent <LevelBarrier>();
                pBarrier.Import(data, false);
                pBarrier.Init();
            }

            //传送门
            for (int i = 0; i < Config.Portals.Count; i++)
            {
                MapPortal    data    = Config.Portals[i];
                LevelElement pHolder = GetHolder(MapHolderType.Portal);
                GameObject   go      = pHolder.gameObject.AddChild();
                LevelPortal  pPortal = go.AddComponent <LevelPortal>();
                pPortal.Import(data, false);
                pPortal.Init();
            }
        }
Esempio n. 3
0
        private void Import()
        {
            LevelComponent levelCom = target as LevelComponent;

            levelCom.transform.DestroyChildren();
            levelCom.InitHolder();
            string    fsPath = AssetUtility.GetLevelConfigAsset(levelCom.LevelID.ToString());
            MapConfig data   = new MapConfig();

            data.EditorLoad(fsPath);

            levelCom.MapName = data.MapName;

            for (int i = 0; i < data.Regions.Count; i++)
            {
                LevelElement pHolder = levelCom.GetHolder(MapHolderType.Region);
                GameObject   go      = pHolder.gameObject.AddChild();
                LevelRegion  pRegion = go.AddComponent <LevelRegion>();
                pRegion.Import(data.Regions[i], true);
            }

            for (int i = 0; i < data.Barriers.Count; i++)
            {
                LevelElement pHolder  = levelCom.GetHolder(MapHolderType.Barrier);
                GameObject   go       = pHolder.gameObject.AddChild();
                LevelBarrier pBarrier = go.AddComponent <LevelBarrier>();
                pBarrier.Import(data.Barriers[i], true);
            }


            for (int i = 0; i < data.WaveSets.Count; i++)
            {
                LevelElement pHolder  = levelCom.GetHolder(MapHolderType.WaveSet);
                GameObject   go       = pHolder.gameObject.AddChild();
                LevelWaveSet pWaveSet = go.AddComponent <LevelWaveSet>();
                pWaveSet.Import(data.WaveSets[i], true);
            }

            for (int i = 0; i < data.MonsterGroups.Count; i++)
            {
                LevelElement      pHolder = levelCom.GetHolder(MapHolderType.MonsterGroup);
                GameObject        go      = pHolder.gameObject.AddChild();
                LevelMonsterGroup pGroup  = go.AddComponent <LevelMonsterGroup>();
                pGroup.Import(data.MonsterGroups[i], true);
            }

            for (int i = 0; i < data.MineGroups.Count; i++)
            {
                LevelElement   pHolder = levelCom.GetHolder(MapHolderType.MineGroup);
                GameObject     go      = pHolder.gameObject.AddChild();
                LevelMineGroup pGroup  = go.AddComponent <LevelMineGroup>();
                pGroup.Import(data.MineGroups[i], true);
            }

            for (int i = 0; i < data.Portals.Count; i++)
            {
                LevelElement pHolder = levelCom.GetHolder(MapHolderType.Portal);
                GameObject   go      = pHolder.gameObject.AddChild();
                LevelPortal  pPortal = go.AddComponent <LevelPortal>();
                pPortal.Import(data.Portals[i], true);
            }

            for (int i = 0; i < data.Npcs.Count; i++)
            {
                LevelElement pHolder = levelCom.GetHolder(MapHolderType.Npc);
                GameObject   go      = pHolder.gameObject.AddChild();
                LevelNpc     pNpc    = go.AddComponent <LevelNpc>();
                pNpc.Import(data.Npcs[i], true);
            }

            {
                LevelElement pHolder = levelCom.GetHolder(MapHolderType.Born);
                if (data.Ally != null)
                {
                    GameObject gA     = pHolder.gameObject.AddChild();
                    LevelBorn  pBornA = gA.AddComponent <LevelBorn>();
                    pBornA.Import(data.Ally, true);
                }
                if (data.Enemy != null)
                {
                    GameObject gB     = pHolder.gameObject.AddChild();
                    LevelBorn  pBornB = gB.AddComponent <LevelBorn>();
                    pBornB.Import(data.Enemy, true);
                }
                if (data.Neutral != null)
                {
                    GameObject gC     = pHolder.gameObject.AddChild();
                    LevelBorn  pBornC = gC.AddComponent <LevelBorn>();
                    pBornC.Import(data.Neutral, true);
                }
            }

            Debug.Log("导入关卡数据:" + fsPath);
        }
Esempio n. 4
0
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();
            LevelPortal pElem = target as LevelPortal;

            int pDestID = EditorGUILayout.IntField("目标区域ID", pElem.DestMapID);
            if (pDestID != pElem.DestMapID)
            {
                pElem.DestMapID = pDestID;
                pElem.Build();
            }

            bool pIsDisplayText = EditorGUILayout.Toggle("显示文字", pElem.DisplayText);
            if (pIsDisplayText != pElem.DisplayText)
            {
                pElem.DisplayText = pIsDisplayText;
                pElem.Build();
            }

            string pPortalName = EditorGUILayout.TextField("传送门名字",pElem.PortalName);
            if (pPortalName != pElem.PortalName)
            {
                pElem.PortalName = pPortalName;
                pElem.Build();
            }

            EditorGUILayout.Space();
            EditorGUILayout.IntField("特效ID", pElem.SerialId);

            EditorGUILayout.Space();
            EditorGUILayout.BeginVertical();
            EditorGUILayout.LabelField("传送所需条件之间的关系,当一个条件值为-1时不参与");
            ConditionRelationType pRelation = (ConditionRelationType)EditorGUILayout.EnumPopup(string.Empty, pElem.Relation);
            if (pRelation != pElem.Relation)
            {
                pElem.Relation = pRelation;
            }
            EditorGUILayout.EndVertical();

            int pOpenLevel = EditorGUILayout.IntField("传送所需等级", pElem.OpenLevel);
            if (pOpenLevel != pElem.OpenLevel)
            {
                pElem.OpenLevel = pOpenLevel;
            }

            int pOpenItemID = EditorGUILayout.IntField("传送所需所需物品ID", pElem.OpenItemID);
            if (pOpenItemID != pElem.OpenItemID)
            {
                pElem.OpenItemID = pOpenItemID;
            }

            int pOpenVIP = EditorGUILayout.IntField("传送所需VIP等级", pElem.OpenVIP);
            if (pOpenVIP != pElem.OpenVIP)
            {
                pElem.OpenVIP = pOpenVIP;
            }

            EditorGUILayout.Space();
            LevelRegion pRegion = (LevelRegion)EditorGUILayout.ObjectField("传送门触发器", pElem.Region, typeof(LevelRegion), true);
            if(pRegion!=pElem.Region)
            {
                pElem.Region = pRegion;
            }
            EditorGUILayout.LabelField("使用触发器ID", pElem.RegionID.ToString());
        }