Unity5平面枢轴点创建

时间:2016-07-12 13:09:13

标签: c# pivot mesh unity5 plane

我用c#脚本创建了一个50x50的飞机。我使用顶点,UV和三角形。那些飞机制造一个区域。那没问题。但我的Plane_0_0是第一个位于中心的。我需要每个飞机都向左下方旋转。如何使用脚本向左下方旋转?

2 个答案:

答案 0 :(得分:0)

你的问题有点不清楚。但是从我认为我理解的东西,你试图让你的飞机旋转。为此,您可以使用Euler Angles:

gameObj.transform.eulerAngles = new Vector3(
    gameObj.transform.eulerAngles.x,
    gameObj.transform.eulerAngles.y,
    gameObj.transform.eulerAngles.z
); //Find the axis on which you want to rotate, and apply a value to it, for example :
   //gameObj.transform.eulerAngles.y + 150

当然,gameObj是你的飞机对象。

答案 1 :(得分:0)

好的,我想我已经明白了。您希望左下角“tile”成为整个“tileset”/“map”的中心,因此如果您旋转“所有内容”,那么它应该是中心。
好的,这很简单。你需要做的是,使Plane_0_0瓦片成为其余瓦片的父级(设置你想成为旋转的所有瓦片的.Parent属性到“枢轴瓦片”GO)。 />
稍后,你可以改变这个。如果是,例如其他一些瓷砖应该是枢轴中心,你可以“重置育儿”。但是重新定位是一个昂贵的例行程序。

编辑
正如(像我上面写的那样)重新定位是一项昂贵的操作,我正在考虑替代方案和这是我发现我将使用的:创建一个GameObject(比如说​​另一个平面)没有网格渲染器,碰撞器等,并将其拉出到字段的大小(在编辑器中)。使其成为场景中所有切片的父级。然后,每当你需要“转动”所有东西时,你可以选择父平面的RotateAround,标记你想要的旋转中心(例如,在左下角的方块“上方”)。
我还要修改标准Unity Plane并从中移除Mesh Collider并将其替换为简单的Box Collider,另存为预制件并使用该预制件作为我的磁贴以节省一些计算时间(如果飞机的工作只不过是为了起高原作用。)