click and move script no working (as intended)
hey guys, recently I tried to work on a script where you click a location and as long as you hold down the button, the player will continue to move towards the mousepointer:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class clickAndGoMovement1 : MonoBehaviour {
public float moveDistance = 5;
public float moveX;
public float moveY;
void Update () {
Vector3 mousePlayerDifference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
mousePlayerDifference.Normalize();
float rotationZ = Mathf.Atan2(mousePlayerDifference.y, mousePlayerDifference.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0f, 0f, rotationZ);
//it's now facing the mouse, now move it!
Vector3 myPosition = transform.position;
if (Input.GetKey("space"))
{
moveX = (Mathf.Cos(rotationZ)) * moveDistance * Time.deltaTime;
moveY = (Mathf.Sin(rotationZ)) * moveDistance * Time.deltaTime;
myPosition.x += moveX;
myPosition.y += moveY;
transform.position = myPosition;
}
}
}
this script actually works, but in a very weird and buggy way. When I hold down space when point at a location. The "player" actually points to it and moves smoothly towards it. But not until I move my cursor and the player just somehow shakes violently in place until I stop moving my cursor. Really not sure how this works, I think I messed up something in the sin and cos part cause I have no idea how to use those... well if you know what's wrong with it please tell me down below!
Your answer
Follow this Question
Related Questions
How To Move My Player With Sin And Cos Functions 1 Answer
What is the correct way to move objects relative to each other ? 1 Answer
Wall sliding with characterController against an edge 0 Answers
How to make multiple objects with the same script work independently? 0 Answers
My player moves diagonally when you press two keys at once 0 Answers