public void Tick() { var entityManager = Game.Instance.gameLogicManager.entityManager; var entities = entityManager.GetAllEntities(); foreach (var item in entities) { var entity = item.Value; var brain = entity.GetComponent <Brain>(); if (brain != null) { var enemy = entityManager.GetEntity(brain.enemy); var offset = enemy.position.position - entity.position.position; var distance = offset.magnitude; if (distance < 5) { if (distance > 1) { var angle = Vector3.Angle(offset, Vector3.forward); if (Vector3.Cross(offset, Vector3.forward).y > 0) { angle = 360 - angle; } var entityData = new FrameData.EntityData() { id = entity.id, type = FrameData.OperationType.Moveing, angle = angle }; m_EntityData.Add(entityData); } else if (entity.movement.speed > 0) { var entityData = new FrameData.EntityData() { id = entity.id, type = FrameData.OperationType.EndMove, angle = float.NaN }; m_EntityData.Add(entityData); } } else if (entity.movement.speed > 0) { var entityData = new FrameData.EntityData() { id = entity.id, type = FrameData.OperationType.EndMove, angle = float.NaN }; m_EntityData.Add(entityData); } } } }
public void OnEntityClick(PointerEventData eventData, object userData) { var target = userData as Entity; if (target.id == Game.Instance.inputManager.entity) { return; } var entityManager = Game.Instance.gameLogicManager.entityManager; var entity = entityManager.GetEntity(Game.Instance.inputManager.entity); var data = new FrameData.EntityData() { id = entity.id, type = FrameData.OperationType.Ability, abilityName = entity.ability.attack, target = target.id }; m_FrameData.Add(data); }
public override void Tick() { var up = UnityEngine.Input.GetKey(KeyCode.UpArrow); var down = UnityEngine.Input.GetKey(KeyCode.DownArrow); var left = UnityEngine.Input.GetKey(KeyCode.LeftArrow); var right = UnityEngine.Input.GetKey(KeyCode.RightArrow); float angle = float.NaN; if (up && right) { angle = 45; // ↗ } else if (up && left) { angle = 315; // ↖ } else if (up && down) { } else if (right && down) { angle = 135; // ↘ } else if (right && left) { } else if (down && left) { angle = 225; // ↙ } else if (up) { angle = 0; // ↑ } else if (right) { angle = 90; // → } else if (down) { angle = 180; // ↓ } else if (left) { angle = 270; // ← } else { } if (float.IsNaN(angle) == false) { var data = new FrameData.EntityData() { id = Game.Instance.inputManager.entity, type = FrameData.OperationType.Moveing, angle = angle }; m_FrameData.Add(data); m_Moving = true; } else if (m_Moving) { var data = new FrameData.EntityData() { id = Game.Instance.inputManager.entity, type = FrameData.OperationType.EndMove }; m_FrameData.Add(data); m_Moving = false; } }