Moves a point current
towards target
.
This is essentially the same as Vector2.Lerp but instead the function will ensure that the distance never exceeds maxDistanceDelta
. Negative values of maxDistanceDelta
pushes the vector away from target
.
#pragma strict // 2D MoveTowards example // Move the sprite to where the mouse is clicked // // Set speed to -1.0f and the sprite will move // away from the mouse click position forever private var speed: float = 10.0f; private var target: Vector2; private var position: Vector2; private var cam: Camera; function Start() { target = new Vector2(0.0f, 0.0f); position = gameObject.transform.position; cam = Camera.main; } function Update() { var step: float = speed * Time.deltaTime; // move sprite towards the target location transform.position = Vector2.MoveTowards(transform.position, target, step); } function OnGUI() { var currentEvent: Event = Event.current; var mousePos: Vector2 = new Vector2(); var point: Vector2 = new Vector2(); // compute where the mouse is in world space mousePos.x = currentEvent.mousePosition.x; mousePos.y = cam.pixelHeight - currentEvent.mousePosition.y; point = cam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, 0.0f)); if (Input.GetMouseButtonDown(0)) { // set the target to the mouse click location target = point; } }
using UnityEngine;
// 2D MoveTowards example // Move the sprite to where the mouse is clicked // // Set speed to -1.0f and the sprite will move // away from the mouse click position forever
public class ExampleClass : MonoBehaviour { private float speed = 10.0f; private Vector2 target; private Vector2 position; private Camera cam;
void Start() { target = new Vector2(0.0f, 0.0f); position = gameObject.transform.position;
cam = Camera.main; }
void Update() { float step = speed * Time.deltaTime;
// move sprite towards the target location transform.position = Vector2.MoveTowards(transform.position, target, step); }
void OnGUI() { Event currentEvent = Event.current; Vector2 mousePos = new Vector2(); Vector2 point = new Vector2();
// compute where the mouse is in world space mousePos.x = currentEvent.mousePosition.x; mousePos.y = cam.pixelHeight - currentEvent.mousePosition.y; point = cam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, 0.0f));
if (Input.GetMouseButtonDown(0)) { // set the target to the mouse click location target = point; } } }