public override void OnInspectorGUI() { HolderMineGroup pHolder = target as HolderMineGroup; EditorGUILayout.Space(); EditorGUILayout.LabelField("矿物刷新点"); if (GUILayout.Button("添加矿物刷新点")) { pHolder.AddElement(); } }
public void StartMapEvent(MapEvent pData, LevelRegion pRegion) { switch (pData.Type) { case MapTriggerType.Barrier: { HolderBarrier pHolder = GetHolder(MapHolderType.Barrier) as HolderBarrier; CreateMapEvent <LevelBarrier, MapBarrier>(pData, pRegion, pHolder, Config.Barriers); } break; case MapTriggerType.Region: { HolderRegion pHolder = GetHolder(MapHolderType.Region) as HolderRegion; CreateMapEvent <LevelRegion, MapRegion>(pData, pRegion, pHolder, Config.Regions); } break; case MapTriggerType.Portal: { HolderPortal pHolder = GetHolder(MapHolderType.Portal) as HolderPortal; CreateMapEvent <LevelPortal, MapPortal>(pData, pRegion, pHolder, Config.Portals); } break; case MapTriggerType.Waveset: { HolderWaveSet pHolder = GetHolder(MapHolderType.WaveSet) as HolderWaveSet; CreateMapEvent <LevelWaveSet, MapWaveSet>(pData, pRegion, pHolder, Config.WaveSets); } break; case MapTriggerType.Result: { OnLevelEnd(); } break; case MapTriggerType.Monstegroup: { HolderMonsterGroup pHolder = GetHolder(MapHolderType.MonsterGroup) as HolderMonsterGroup; CreateMapEvent <LevelMonsterGroup, MapMonsterGroup>(pData, pRegion, pHolder, Config.MonsterGroups); } break; case MapTriggerType.Minegroup: { HolderMineGroup pHolder = GetHolder(MapHolderType.MineGroup) as HolderMineGroup; CreateMapEvent <LevelMineGroup, MapMineGroup>(pData, pRegion, pHolder, Config.MineGroups); } break; } }
private MapConfig Export() { LevelComponent pHandler = target as LevelComponent; MapConfig data = new MapConfig(); data.Id = pHandler.LevelID; data.MapName = pHandler.MapName; data.MapPath = pHandler.MapPath; List <LevelElement> pList = new List <LevelElement>(); for (int i = 0; i < pHandler.transform.childCount; i++) { Transform child = pHandler.transform.GetChild(i); LevelElement pElem = child.GetComponent <LevelElement>(); if (pElem) { pList.Add(pElem); } } for (int k = 0; k < pList.Count; k++) { string classType = pList[k].GetType().Name; LevelElement current = pList[k]; switch (classType) { case "HolderBorn": { HolderBorn pHolder = current as HolderBorn; if (pHolder != null) { for (int i = 0; i < pHolder.Elements.Count; i++) { LevelElement pElem = pHolder.Elements[i]; switch (pHolder.Elements[i].Camp) { case BattleCampType.Ally: data.Ally = pElem.Export() as MapBorn; break; case BattleCampType.Enemy: data.Enemy = pElem.Export() as MapBorn; break; case BattleCampType.Neutral: data.Neutral = pElem.Export() as MapBorn; break; } } } } break; case "HolderBarrier": { HolderBarrier pHolder = current as HolderBarrier; if (pHolder != null) { for (int i = 0; i < pHolder.Elements.Count; i++) { LevelElement pElem = pHolder.Elements[i]; data.Barriers.Add(pElem.Export() as MapBarrier); } } } break; case "HolderPortal": { HolderPortal pHolder = current as HolderPortal; if (pHolder != null) { for (int i = 0; i < pHolder.Elements.Count; i++) { LevelElement pElem = pHolder.Elements[i]; data.Portals.Add(pElem.Export() as MapPortal); } } } break; case "HolderRegion": { HolderRegion pHolder = current as HolderRegion; if (pHolder != null) { for (int i = 0; i < pHolder.Elements.Count; i++) { LevelElement pElem = pHolder.Elements[i]; data.Regions.Add(pElem.Export() as MapRegion); } } } break; case "HolderWaveSet": { HolderWaveSet pHolder = current as HolderWaveSet; if (pHolder != null) { for (int i = 0; i < pHolder.Elements.Count; i++) { LevelElement pElem = pHolder.Elements[i]; data.WaveSets.Add(pElem.Export() as MapWaveSet); } } } break; case "HolderMonsterGroup": { HolderMonsterGroup pHolder = current as HolderMonsterGroup; if (pHolder != null) { for (int i = 0; i < pHolder.Elements.Count; i++) { LevelElement pElem = pHolder.Elements[i]; data.MonsterGroups.Add(pElem.Export() as MapMonsterGroup); } } } break; case "HolderMineGroup": { HolderMineGroup pHolder = current as HolderMineGroup; if (pHolder != null) { for (int i = 0; i < pHolder.Elements.Count; i++) { LevelElement pElem = pHolder.Elements[i]; data.MineGroups.Add(pElem.Export() as MapMineGroup); } } } break; case "HolderNpc": { HolderNpc pHolder = current as HolderNpc; if (pHolder != null) { for (int i = 0; i < pHolder.Elements.Count; i++) { LevelElement pElem = pHolder.Elements[i]; data.Npcs.Add(pElem.Export() as MapNpc); } } } break; } } return(data); }