Unity3d霰弹枪锥射击

时间:2015-09-06 11:51:39

标签: c# unity3d raytracing

我正在使用光线投射作为霰弹枪。我随机化了每条射线的方向:

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

一切正常,但这个方向的最大“范围”是矩形,我想要一个椭圆。很难解释: Raycast 我似乎应该在某处使用规范化,但我不知道在哪里。

1 个答案:

答案 0 :(得分:2)

圆圈上的点坐标可以像x = r*cos(a), y = r*sin(a)一样计算。如果r是随机点,则将在半径为" splash";

的圆圈内
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 );