Hello
I’m creating a 2D game. I created some enemies(Ghost) and I want to do these enemies chase the player like Ghosts of Mario Bros for example.
If my player goes right or left of position enemy, I want rotate position y of enemy also.
How can I do this ?
I’m trying this.
public class GhostEnemy : MonoBehaviour {
//player
private Transform player;
//ghost
public Transform ghost;
public float moveSpeed;
private bool chasing = false;
// Use this for initialization
void Start () {
player = GameObject.Find("PlayerObject").transform;
}
// Update is called once per frame
void Update () {
chasingPlayer();
}
private void chasingPlayer(){
//distance of ghost and player
float distance = Vector2.Distance(ghost.position, player.position);
if(chasing){
//rotate ghost
Vector3 dir = player.position - ghost.position;
float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
//attack player
Vector3 dir = player.position - ghost.position;
dir.Normalize();
ghost.position += dir * moveSpeed * Time.deltaTime;
//distance > range, chasing false
if(distance > 10f){
chasing = false;
}
}else{
//distance < range, chasing true(attack player)
if(distance < 5f){
chasing = true;
}
}
}
}