Unity: ClampMagnitude

Vector3.ClampMagnitude(Vector3 vector, float maxLength);を使えば、設定した中心点から、一定の距離内だけを移動するような指定ができる。

ドキュメントのC#サンプルにある

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Vector3 centerPt;
    public float radius;
    void Update() {
        Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
        Vector3 newPos = transform.position + movement;
        Vector3 offset = newPos - centerPt;
        transform.position = centerPt + Vector3.ClampMagnitude(offset, radius);
    }
}

をステージ上のGameObjectに追加し、インスペクタ上で中心点と半径を指定してやれば、そのGameObjectは中心点から指定半径内だけを動く。つまり移動が球の範囲内に制限される。
移動カーソルのHUDを実装する場合等に使えると思います。

このClampMagnitudeはVector2にも用意されているので、平面上の円の範囲内だけを移動するならそちらを使えばよさそう。
それに関連して分からないのがVectro3をVectro2に変換する方法。上のコードだと

Vector2 newPos = new Vector2(transform.position.x + movement.x, transform.position.y + movement.y);

みたいにやればいいのだけど、ちょっと冗長なのでドキュメントを読むとVector3をVector2にキャストできるそう(追記:こういう使用法だった)なのだけどVector2(vector3)ではエラーになるし、どう書けばいいのか分からない。すごい基本だと思うんだけど、、。