private void Chase(Enemy.EnemyController controller) { Vector2 dirMove = (controller.transform.position - controller.chaseTarget.position).normalized; controller.GetComponent <SpriteRenderer>().sprite = controller.monsterData.AttackSprite(); if (dirMove.x < 0) { controller.transform.localScale = Vector3.one; } else { controller.transform.localScale = new Vector3(-1, 1, 1); } controller.transform.Translate(-dirMove * controller.monsterData.Stats().speed *Time.deltaTime); }
public void Patrol(Enemy.EnemyController controller) { controller.eyes.right = Vector2.right; RaycastHit2D groundInfo = Physics2D.Raycast(controller.eyes.position, controller.eyes.TransformDirection(new Vector2(1, angle)), DISTANCE_RAYCAST, layerHit); RaycastHit2D wallInfo = Physics2D.Raycast(controller.eyes.position, controller.eyes.TransformDirection(Vector2.right), DISTANCE_RAYCAST, layerHit); Debug.DrawRay(controller.eyes.position, controller.eyes.TransformDirection(new Vector2(1, angle)) * DISTANCE_RAYCAST, Color.red); Debug.DrawRay(controller.eyes.position, controller.eyes.TransformDirection(Vector2.right) * DISTANCE_RAYCAST, Color.red); controller.GetComponent <SpriteRenderer>().sprite = controller.monsterData.Sprite(); if (groundInfo.collider == null || wallInfo.collider) { controller.dirMove = ChangeDirection(controller.dirMove); } if (controller.dirMove.x > 0) { controller.transform.localScale = Vector3.one; } else { controller.transform.localScale = new Vector3(-1, 1, 1); } controller.transform.Translate(controller.dirMove * controller.monsterData.Stats().speed *Time.deltaTime); }