private void ConfigureTrap(TrapComponent trap, FormComponent formParent) { // Configure FormComponent var trapGO = formParent.AddChild(PrefabName_TrapDetectionRange); if (trapGO != null) { formParent.SetSphereColliderRadius(trapGO, trap.DetectionRange); } // Configure more stuff here... }
//private void OnUnity_OnAreaOfEffectStay(GameEvent e) //{ // var data = (EntityBehaviour.Unity_OnTriggerStayData)e.EventData; // // AttackComponent // var attack = this.EntityManager.GetComponent<AttackComponent>(data.ItemID); // if (attack != null) // { // this.EventManager.QueueEvent(RPGGameEvent.AttackHit, new AttackSystem.AttackHit() { EntityID = data.ActorID, AttackerID = data.ItemID }); // } //} public static void CreateEffectEntity(EntityManager em, EffectData data) { if (data == null) { return; } int id = em.CreateEntity(); FormComponent form = null; DurationComponent duration = null; // FormComponent if (data.PrefabName != "") { form = new FormComponent(); form.InitComponent(id, data.Location, data.PrefabName, ""); em.AddComponent(id, form); // AreaOfEffectComponent if (data.TargetType == TargetTypeEnum.AreaOfEffect) { form.SetSphereColliderRadius(data.AreaOfEffectRadius); } } // DurationComponent if (data.Duration >= 0) { duration = new DurationComponent(); duration.InitComponent(data.Duration, false); em.AddComponent(id, duration); } // AttackComponent if (data.Description_Attack != "") { //var attack = new AttackComponent() { Damage = data.Damage, DamageType = data.DamageType, Description = data.Description_Attack }; //em.AddComponent(id, attack); } if (duration != null) { duration.TimerActive = true; } if (form != null) { form.SetActive(true); } }