Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity3d霰弹枪锥形射击_C#_Unity3d_Raytracing - Fatal编程技术网

C# Unity3d霰弹枪锥形射击

C# Unity3d霰弹枪锥形射击,c#,unity3d,raytracing,C#,Unity3d,Raytracing,我用光线投射作为猎枪。我随机化每条光线的方向: Vector3 direction = new Vector3 (UnityEngine.Random.Range (-splash, splash), UnityEngine.Random.Range (-splash, splash), 100); 一切正常,但这个方向的最大“范围”是矩形,我想要一个椭圆。很难解释: 似乎我应该在某个地方使用标准化,但我不知道在哪里。圆上点的坐标可以这样计算x=r*cos(a),y=r*sin(a)。如果r为

我用光线投射作为猎枪。我随机化每条光线的方向:

Vector3 direction = new Vector3 (UnityEngine.Random.Range (-splash, splash), UnityEngine.Random.Range (-splash, splash), 100);
一切正常,但这个方向的最大“范围”是矩形,我想要一个椭圆。很难解释:
似乎我应该在某个地方使用标准化,但我不知道在哪里。

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


谢谢,我忘了数学:)Unity有一个函数叫Random.insideUnitSphere还有Random.insideUnitCircle。不确定这对你的案子是否有帮助。。。
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 );