- Home /
How to create a simple Enemy AI for a 2D game? Mine isn't working. . .
Okay, I'm working on a new 2D game but I'm using an animated sprite sheet for my enemy's texture so whenever it rotates to follow the player, it shows the other sides of the game object and it looks really bad. Is there a way to make the enemy follow the player WITHOUT rotating? Like just move back and forth? Right now my enemy is moving in 3D space when I only need it to move in a 2D space. I'll post what script I'm using now for reference. (It's incomplete.) Thanks in advance!
pragma strict
var Health : int = 25;
var Attack : int = 2;
var target : Transform;
var moveSpeed = 3;
var rotationSpeed = 3;
var myTransform : Transform;
function Awake() { myTransform = transform;
}
function Start() { target = GameObject.FindWithTag("Player").transform;
}
function Update () {
myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
}
Answer by Pyrian · Jul 22, 2014 at 03:43 PM
You'll want Mathf.ATan2. The various Look* functions don't work in 2D (they point the Z-axis). Something like:
Quaternion rotation = Quaternion.Euler(0.0F, 0.0F, Mathf.Atan2 (Y, X) * Mathf.Rad2Deg);
Would you be able to explain this a little further? I'm still pretty new to scripting. What will that code do? Thanks for the reply!
Your answer
Follow this Question
Related Questions
Enemy following the target with ITween 2 Answers
2d enemy prefab (enemy movement and instantiate) 1 Answer
AI fighting game 0 Answers
Enemy Follow Script Help 2 Answers
2D Enemy AI X-way only 1 Answer