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
![](https://koobas.hobune.stream/wayback/20220612143147im_/https://answers.unity.com/themes/thub/images/avi.jpg)
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