- Home /
Help with Missile 2D
Hi folks. Thank you for your time.
I'm developing a 2D game in which I have a wasp-enemy that flies in a pattern and I'm doing that by giving it an array of waypoints. When the wasp is close enough to the waypoint that is currently targetted, the wasp targets the next waypoint in the array.
I would like to use the rigidbody2D to move the wasp, and I'm doing it by using the rigidbody.movetowards function, but when it reaches the current targetted waypoint and it changes to the next target waypoint, it looks like a sharp "curve" (or more like a vertex) and I don't like that because it looks unnatural.
How can I make the wasp rotate towards its targetted waypoint, by an angular speed that is given by me, using the rigidbody, and in 2D?
Tank you for your time.
Answer by Tatsumi-Kun · Aug 14, 2016 at 01:21 AM
Transform target;
public int speed;
public int _dmg = 100;
private Health _Health;
void Start()
{
target = GameObject.FindGameObjectWithTag ("Enemy").transform;
//transform.GetChild(0).GetComponent<ParticleEmitter>().emit = true;
}
void FixedUpdate()
{
if (target != null) {
Vector3 dir = target.position - transform.position;
float angle = Mathf.Atan2 (dir.y, dir.x) * Mathf.Rad2Deg - 90;
transform.rotation = Quaternion.AngleAxis (angle, Vector3.forward);
//transform.Translate(0, 0.1f, 0);
transform.position = Vector3.MoveTowards (transform.position, target.position, speed * Time.deltaTime);
}
}
Your answer
Follow this Question
Related Questions
2d physics for cars. The game from the top down 1 Answer
Rigidbody2d addforce isn't moving character 1 Answer
Collision of child is detected as collision of parent with Rigidbody2D 0 Answers
Problem at 180 degrees when rotating slowly 1 Answer
My RigidBody2D+BoxCollider2D is getting stuck on corners 1 Answer