I’ve been trying to make my object move forward in the direction it is facing. But I’ve been unable to do so.
I was trying to do it with MoveTowards(), and adding a gameobject in front of the boat to do it, but I can’t make it work(Direction is the object in front of the boat, and it moves with the boat)
I’m using this code:
public class Player_Movement : MonoBehaviour {
//Floats
public float maxSpeed = 3;
public float speed = 50f;
public float turnSpeed = 30;
//Int
public int accelerationSpeed = 100;//How fast the ship will accelerate.
//References
private Vector3 eulerAngleVelocity;//Which way the vehicle will rotate.
private Rigidbody2D rb2d;
public Rigidbody2D dir;
// Use this for initialization
void Start () {
rb2d = gameObject.GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update () {
if (Input.GetKey(KeyCode.D)) {
transform.Rotate(0, 0, -1);
}
if (Input.GetKey(KeyCode.A)) {
transform.Rotate(0, 0, 1);
}
if (Input.GetKey(KeyCode.W)) {
rb2d.AddForce(Vector2.MoveTowards(rb2d.position, dir.position, 1));//This moves the car forward by adding the force of the acceleration speed to the car.
}
else if (Input.GetKey(KeyCode.S)) {
rb2d.AddForce(Vector2.MoveTowards(rb2d.position, dir.position, -1));//This moves the car forward by adding the force of the acceleration speed to the car.
}
}
}
Please let me know how to make this work or if there is a simpler way of doing it