Returns a copy of vector
with its magnitude clamped to maxLength
.
#pragma strict public var centerPt: Vector3; public var radius: float; function Update() { // Get the new position for the object. var movement: Vector3 = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); var newPos: Vector3 = transform.position + movement; // the same but clamp the length to the specified radius. var offset: Vector3 = newPos - centerPt; transform.position = centerPt + Vector3.ClampMagnitude(offset, radius); }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { // Move the object around with the arrow keys but confine it // to a given radius around a center point.
public Vector3 centerPt; public float radius;
void Update() { // Get the new position for the object. Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); Vector3 newPos = transform.position + movement;
// Calculate the distance of the new position from the center point. Keep the direction // the same but clamp the length to the specified radius. Vector3 offset = newPos - centerPt; transform.position = centerPt + Vector3.ClampMagnitude(offset, radius); } }