Mouse Follow Controller

Hi all! I’m making a small independent game where I want less buttons and controls than your average game,using only the mouse and space button,but twice the Fun! :slight_smile: But I have a problem. The player will be a simple ball in 3D space with a Rigidbody(3/4 top down veiw game), and the ball must follow the mouse within a certain distance. I might need variables to experiment. Usually, I write my own scripts, because I have some clue on how to start. But this one is no exception. I have absolutely no idea. If you can provide a script for me, that be awesome. Thanks!

2 Answers

2

BTW, I don’t want it to be clicking, Just follow the mouse without clicking.

You must cast a ray at Update and translate the object to the hit point - if any. This script was intended to run in the XZ plane, and the object must have a rigidbody with Use Gravity checked.

var speed: float = 2;
var maxSpeed: float = 20;
private var dest: Vector3;

function Start(){
	dest = transform.position;
}

function Update(){
	var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
	var hit: RaycastHit;
	if (Physics.Raycast(ray, hit)){ // if mouse pointer hit 
		dest = hit.point; // some update destination 
	}
	var mov = dest - transform.position; // find direction to move
	mov.y = 0; // zero y to do not interfere with gravity
	mov = mov * speed; // apply speed
	if (mov.magnitude > maxSpeed){ // clamp speed to maxSpeed
		mov = mov.normalized * maxSpeed;
	}
	// move in horizontal direction
	transform.Translate(mov * Time.deltaTime, Space.World);
}