/// <summary> /// Override of <see cref="Unity.Entities.ComponentSystem.OnUpdate()"/>. /// Checks bullet entities who are in summon phase and updates there states. /// <para>Only used internally.</para> /// </summary> protected override void OnUpdate() { EntityManager manager = World.Active.EntityManager; Entities.WithAll <UDEBulletMovements, UDEBulletSummonPhase>().ForEach((Entity entity, ref UDEBulletMovements movement) => { if (movement.IsSummoning) { UDEBulletECS bullet = manager.GetComponentObject <UDEBulletECS>(entity); if (bullet.halo == null) { movement.IsSummoning = false; manager.RemoveComponent <UDEBulletSummonPhase>(entity); return; } else { if (movement.Time > movement.SummonTime) { movement.Time = 0; bullet.halo.enabled = false; bullet.renderer.enabled = true; bullet.collider.enabled = true; movement.IsSummoning = false; manager.RemoveComponent <UDEBulletSummonPhase>(entity); return; } } } }); }
protected virtual void OnEnable() { targetBullet = (UDEBulletECS)target; originCharacter = serializedObject.FindProperty("originCharacter"); originShotPattern = serializedObject.FindProperty("originShotPattern"); damage = serializedObject.FindProperty("damage"); summonTime = serializedObject.FindProperty("summonTime"); }