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 );