- Home /
Move to a clicked point?
So basically, I want the cube to move into the clicked point (left click). Unfortunately, I've been trying to figure it out yet I've still failed. What is the best way to make the cube move to the clicked point? Here's the code:
*The code's supposed to be put into the "code here" section". Thank you very much! :)
using UnityEngine; using System.Collections; using System;
public class VehicleAvoidance : MonoBehaviour { public float speed = 20.0f; public float mass = 5.0f; public float force = 50.0f; public float minimumDistToAvoid = 20.0f;
//Actual speed of the vehicle
private float curSpeed;
private Vector3 targetPoint;
private float initialSpeed;
// Use this for initialization
void Start ()
{
mass = 5.0f;
targetPoint = Vector3.zero;
initialSpeed = speed;
}
void OnGUI()
{
GUILayout.Label("Click anywhere to move the vehicle to the clicked point");
}
// Update is called once per frame
void Update ()
{
//Vehicle move by mouse click
RaycastHit hit;
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Input.GetMouseButtonDown(0) && Physics.Raycast(ray, out hit, 100.0f))
{
targetPoint = hit.point;
}
Vector3 dir = new Vector3(0.0f, 0.0f, 0.0f);
//1- Compute the directional vector to the target position
// CODE HERE
//2- Exit the update function, so that the vehicle stops when the target point is 1 meter away
// CODE HERE
//Adjust the speed to delta time
curSpeed = speed * Time.deltaTime;
//Apply obstacle avoidance
dir += AvoidObstacles();
dir.Normalize();
//Rotate the vehicle to its target directional vector
var rot = Quaternion.LookRotation(dir);
transform.rotation = Quaternion.Slerp(transform.rotation, rot, 5.0f * Time.deltaTime);
//Move the vehicle towards the target point
transform.position += transform.forward * curSpeed;
}
//Calculate the new directional vector to avoid the obstacle
public Vector3 AvoidObstacles()
{
return new Vector3(0.0f, 0.0f, 0.0f);
}
}
Answer by Ezro · Sep 26, 2014 at 03:30 PM
Hi crazykalel,
I would recommend giving this solution a go: http://answers.unity3d.com/questions/639139/how-to-move-an-2d-object-to-mouse-click-position-i.html
You'll still have to implement the turn rate, but the movement should work using MoveTowards().
Regards, Ezro
Your answer
Follow this Question
Related Questions
mouse clicking on the plane and drag to other position 1 Answer
translate 2 Answers
move to a position not being looked at 1 Answer
button click to move camera to another position 2 Answers
Move to clicked hitpoint 2 Answers