Hi Guys,
im working on a little shootingscript. I want that the bullet is moving to a specific position (where the user clicked) and then further until its destroyed. At the moment its just moving to the click position and after 3 seconds (which is determined in a 2. script) it is destroyed.
So my question: How can i get the bullet move in the direction of the mouseclick and let it move further then the mouseclick position?
Heres my code:
public float speed = 1.5f;
private Vector3 target;
private Vector3 clickpos;
private Vector3 origPos;
void Start (){
target = transform.position;
origPos = transform.position;
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
clickpos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
}
if (this.transform.position == clickpos) {
this.gameObject.rigidbody.velocity = new Vector2(target.x, target.y);
}
else
{
transform.position = Vector3.MoveTowards (transform.position, target, speed * Time.deltaTime);
}
Vector3 moveDirection = gameObject.transform.position - origPos;
if (moveDirection != Vector3.zero)
{
float angle = Mathf.Atan2(moveDirection.y, moveDirection.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}
}