我正在使用射线广播作为a弹枪。我随机化每个射线的方向:

Vector3 direction = new Vector3 (UnityEngine.Random.Range (-splash, splash), UnityEngine.Random.Range (-splash, splash), 100);


一切正常,但是该方向的最大“范围”是矩形,我想要一个椭圆。很难解释:
c# - Unity3D shot弹枪射击-LMLPHP
似乎我应该在某个地方使用规范化,但是我不知道在哪里。

最佳答案

圆上的点的坐标可以像x = r*cos(a), y = r*sin(a)这样计算。如果r为随机点,则将在半径为“飞溅”的圆内;

Vector3 direction = new Vector3( Random.Range(-splash,splash)*Mathf.Cos(Random.Range(0,2*Mathf.PI)),Random.Range(-splash,splash)*Mathf.Sin(Random.Range(0,2*Mathf.PI)),0 );

关于c# - Unity3D shot弹枪射击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32423241/

10-12 04:26