public ED_MapTriggerCom CreateTrigger() { ED_MapAreaCom areaCom = GetArea(); if (areaCom == null) { Debug.LogError("创建地图失败,没有区域!!!!"); return(null); } Transform obsTrans = transform.Find("Prefab/TriggerArea"); GameObject newGo = Instantiate(obsTrans.gameObject); ED_MapTriggerCom triggerCom = newGo.GetComponent <ED_MapTriggerCom>(); areaCom.AddTrigger(triggerCom); return(triggerCom); }
public override object ExportData() { UpdateRect(); AreaModel areaModel = new AreaModel(); areaModel.pos = transform.localPosition; areaModel.rect = areaRect; areaModel.areaPrefab = AreaEnv.name; //演员 ED_ActorCom[] actorComs = ActorRoot.GetComponentsInChildren <ED_ActorCom>(true); if (actorComs != null) { for (int i = 0; i < actorComs.Length; i++) { ED_ActorCom tActorCom = actorComs[i]; areaModel.actors.Add((ActorModel)tActorCom.ExportData()); } } //地图默认演员 List <ActorModel> mapActors = CollectMapDefaultActors(tmpAreaEnv); if (mapActors != null && mapActors.Count > 0) { foreach (ActorModel actorData in mapActors) { areaModel.actors.Add(actorData); } } //触发区域 ED_MapTriggerCom[] triggerComs = TriggerRoot.GetComponentsInChildren <ED_MapTriggerCom>(true); if (triggerComs != null) { for (int i = 0; i < triggerComs.Length; i++) { ED_MapTriggerCom tTriggerCom = triggerComs[i]; areaModel.triggers.Add(i + 1, (MapTriggerModel)tTriggerCom.ExportData()); } } return(areaModel); }
private void Update() { UpdateRect(); ED_ActorCom[] actors = GetActors(); if (actors != null || actors.Length > 0) { for (int i = 0; i < actors.Length; i++) { ED_ActorCom actorCom = actors[i]; actorCom.transform.position = ClampPos(actorCom.transform.position); } } ED_MapTriggerCom[] triggers = GetTriggers(); if (triggers != null || triggers.Length > 0) { for (int i = 0; i < triggers.Length; i++) { ED_MapTriggerCom triggerCom = triggers[i]; triggerCom.transform.position = ClampPos(triggerCom.transform.position); } } }
public void AddTrigger(ED_MapTriggerCom triggerCom) { MapEditorHelper.SetParent(triggerCom.gameObject, TriggerRoot.gameObject); }