c# - Unity3d 霰弹枪锥形射击

标签 c# unity3d raytracing

我将光线转换用作霰弹枪。我随机化每条光线的方向:

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

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

最佳答案

圆上点的坐标可以这样计算 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 );

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

相关文章:

f# - 光线追踪 F# - 缺少三角形会在图 : Hit properly? 中产生孔洞

c++ - 为什么在我的光线追踪器中计算阴影和反射时会丢失细节

c# - 如何在 Silverlight 中将一个控件固定在另一个控件下方?

game-physics - 这个平面射线相交代码正确吗?

c# - 读写文本文件 Windows Phone 8.1

c# - 通过游戏将截图保存到安卓图库

c# - 我流泪了,因为我不知道如何用 Action 现场初始化 Dictionary?

c# - 在 C# 平面中绘制粗细可变的羽化线

c# - 高效的垃圾收集

c# - 是否有一个版本的 Tuple 类的 Items 属性不是只读的并且可以设置?