Unity 3D在锥体中设置对象

时间:2016-03-13 20:32:52

标签: c# math unity3d

我希望将物品放在相对于另一个物体的特定位置:

enter image description here

这个新物体必须放在粉红色区域,我只知道放置的最小和最大距离,相对于我的第一个物体向前方向的角度(maxAngle,以度为单位),以及第一个物体的位置。

我已经知道如何检查对象是否放置在粉色区域中,但是没有在该区域中设置其位置。所以我用代码检查了锥体中的一个物体,但是我无法改变它来设置锥体中的位置。

java.util.concurrent

如果你能给我线索,那就非常酷。

1 个答案:

答案 0 :(得分:3)

诀窍是移动本地位置然后拉直......

这确实是Unity或任何基于变换的场景引擎的基本技术。

创建新对象" newb"。

(1)将对象准确定位在" +"在你的形象。

(2)选择你的角度

   angle = Random.Range(-maxAngle, maxAngle);

(3)扭曲newb:

   newb.transform.eulerAngles = new Vector3( 0f, 0f, angle);

(4)选择你的距离:

     distance = Random.Range(minDistance,maxDistance);

(5)然后将newb的 LOCAL 位置偏移那么多:

     newb.transform.Translate(0f, 0f, distance, Space.Self);

然后诀窍:

请注意" newb"将会扭曲#34;所以让它坐直:

       newb.transform.eulerAngles = Vector3.zero;