【发布时间】:2021-11-23 12:23:08
【问题描述】:
我正在尝试制作一个可以将对象捕捉到网格的东西。目前我有这个代码
float x = Mathf.Round(selected.position.x / gridScale) * gridScale;
float y = Mathf.Round(selected.position.y / gridScale) * gridScale;
Vector3 gridPos = new Vector3(x, y, 0);
但它不起作用,因为网格的底部会旋转,这会导致捕捉位置发生偏移。如何使它在旋转时可以正确捕捉到网格?
【问题讨论】:
-
是否可以选择将此对象作为旋转对象的子对象?这样,您将捕捉到本地空间中的网格,但任何旋转和父对象平移也将自动应用于子对象;)
-
不,也许我没有说清楚,但问题是在创建对象时,一旦创建它就可以很好地旋转,但是当网格旋转时试图将其捕捉到网格上
-
如前所述:如果它是网格的子节点,则没关系.. 计算 本地空间 中的位置,以便在父对象坐标中与父对象的增量空间......你根本不必关心任何旋转;)