Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


MoveTowards(Vector2, Vector2, float)

Moves a point current towards target.
Read time 1 minuteLast updated 4 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule
public static Vector2 MoveTowards(Vector2 current, Vector2 target, float maxDistanceDelta)

Parameters

current

A point to move.

target

The target point to move to.

maxDistanceDelta

A target distance not to exceed.

Returns

Type

Description

Vector2The new position, moved from
current
towards
target
by at most
maxDistanceDelta
.

Remarks

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
.

Examples

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 foreverpublic 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; } }}