在(0,0)的单位圆圈上得到随机点

Arm*_*ode 1 c# unity-game-engine

我正在使用Unity和C#,并希望编写一个函数,将x和y坐标作为随机点的Vector2返回到(0,0)的单位圆上.

看起来有一个函数UnityEngine.Random.insideUnitCircle();在单位圆内得到一个随机点,UnityEngine.Random.onUnitSphere()但是我怎么能在单位圆得到一个点呢?

Fog*_*zie 5

你可以只使用标准化属性Vector2用返回UnityEngine.Random.insideUnitCircle;.它将返回一个矢量

方向相同但长度为1.0.

由于您使用的是单位圆,因此可以满足您的需求.你还想通过将结果默认为有效的东西来处理零向量的罕见情况:

return myVector == Vector2.zero ? Vector2.one : myVector;
Run Code Online (Sandbox Code Playgroud)