Unity3d 霰弹枪锥形射击
Unity3d shotgun cone shoot
我将光线投射用作霰弹枪。我随机化每条光线的方向:
Vector3 direction = new Vector3 (UnityEngine.Random.Range (-splash, splash), UnityEngine.Random.Range (-splash, splash), 100);
一切正常,但是这个方向的最大值 "range" 是矩形,我想要一个椭圆。很难解释:
似乎我应该在某处使用归一化,但我不知道在哪里。
圆上的点坐标可以这样计算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 );
我将光线投射用作霰弹枪。我随机化每条光线的方向:
Vector3 direction = new Vector3 (UnityEngine.Random.Range (-splash, splash), UnityEngine.Random.Range (-splash, splash), 100);
一切正常,但是这个方向的最大值 "range" 是矩形,我想要一个椭圆。很难解释:
圆上的点坐标可以这样计算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 );