Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
                }
            }
        }
Exemple #4
0
 public void AddTrigger(ED_MapTriggerCom triggerCom)
 {
     MapEditorHelper.SetParent(triggerCom.gameObject, TriggerRoot.gameObject);
 }