[Unity]空心圆范围内随机生成物品

根据参考资料1 ,进行测试

 

 

Random.insideUnitCircle 

在单位圆范围内 取一个 随机坐标。

[Unity]空心圆范围内随机生成物品_第1张图片

 

 

Vector3.magnitude

计算 矢量(从原点0,0,0 到 该vector3 坐标) 的长度

 

 

Vector3.normalized

 

 

 

怎么理解 什么是 vector3.normalized,看下下面的这个例子

 

Vector2 p33 = Random.insideUnitCircle * 5;
        Debug.Log("p33  " +p33 +" p33.normalized "+ p33.normalized);

 

结果:

 

 

建立一个 坐标 图,把 上面的2个结果坐标 ,放入下图,如下图所示

 

 

[Unity]空心圆范围内随机生成物品_第2张图片

通过观察,得到,p33 和 p33.normalized 的2个坐标 在同一直线上

通过以上 测试,可以得到 一个 猜测:p33.normalized 的作用 把 Vector2 类型变量 p33 ,在该变量 上缩小长度 为 单位长度 1,

并且p33.normalized 坐标在 原点与 p33 的直线上(矢量)上

 

为了 验证 以上的 猜测 ,做了 下面 的一个  测试,显示结果如下所示

 

 

事实证明 ,猜测是正确的。

 

p33.normalized 的作用 把 Vector2 类型变量 p33 ,在该变量 上缩小长度 为 单位长度 1,

并且p33.normalized 坐标在 原点与 p33 的直线上(矢量)上

 

以上3个基础的 与圆有关的 参数进行了说明

 

------------------------------------------------------------------------------------

到底是 什么变量控制生成空心圆的。

[Unity]空心圆范围内随机生成物品_第3张图片

 

测试结果如下所示

 

[Unity]空心圆范围内随机生成物品_第4张图片

[Unity]空心圆范围内随机生成物品_第5张图片

获得2个 物体 的 坐标分别 为 (3,0,0) 和 (4,0,0)

[Unity]空心圆范围内随机生成物品_第6张图片

根据以上的推论,

红字方框 部分 :决定 了生成的空心圆的范围

黑色方框 部分:决定 了内空心 的半径

绿色下划线 部分:决定 了整个空心圆 的半径

如下图所示

[Unity]空心圆范围内随机生成物品_第7张图片

 

 

这样 就变成了 实心圆

[Unity]空心圆范围内随机生成物品_第8张图片[Unity]空心圆范围内随机生成物品_第9张图片

 

 

空心圆

[Unity]空心圆范围内随机生成物品_第10张图片[Unity]空心圆范围内随机生成物品_第11张图片

 

最后说一下,for 循环控制 生成 的 随机物品 的数量 

vector2 p = Random.insideUnitCircle 才是 控制 生成 的随机物品 的坐标

[Unity]空心圆范围内随机生成物品_第12张图片[Unity]空心圆范围内随机生成物品_第13张图片

------------------------------------------------------------------------------------

参考资料:

1.unity3d 在一个空心圆范围内随机生成物体

2.

 

相关资料:

1.[Unity]围绕一点球形生成物体,空心球体

2.

你可能感兴趣的:(Unity)