2016-07-12 27 views
0

我用c#脚本创建了一个50x50平面。我使用了顶点,UV和三角形。那些飞机制造一个区域。所以没有问题。但是我的Plane_0_0是第一个定位在中心的。我需要每个飞机枢轴向左下方。我如何使用脚本左下角左转?Unity5平面支点创建

+0

举几个屏幕请,我不能确定你是什么到底要 –

+0

http://hizliresim.com/gog7pZ 我不需要设置支点中心左下 –

回答

0

好吧,我想我已经明白了。你希望左下角的“瓷砖”成为整个“瓷砖”/“地图”的中心,所以如果和当你旋转“一切”时,这应该是中心。
好的,很简单。你需要做的是,使Plane_0_0平铺其余瓷砖的父项(将所有瓷砖的.Parent属性设置为你想成为“透视瓷砖”GO的一部分)。

稍后,您可以更改此设置。所以如果例如其他一些瓷砖应该是枢轴中心,您可以“重置育儿”。但重新装修是一个昂贵的例程。


编辑
正如(像我上面写的)重排根是一个昂贵的操作,我在想的替代品,这是我发现我会用:创建GameObject(比方说,另一架飞机),而网格渲染器,对撞机,并将其拉出到字段的大小(在编辑器中)。使其成为场景中所有拼贴的父项。然后,无论何时您需要“旋转”所有内容,您可以前往父母飞机的RotateAround,标记您希望的任何旋转中心(例如,在“左上角”区域的“上方”)。
我还要修改标准统一Plane,并从中取出Mesh Collider并用一个简单的Box Collider取代它,保存为预制和使用预制我的瓷砖,以节省一些计算时间(如果飞机的工作是没有别的而是服务作为高原)。

+0

我没有父我的WorldController这是一个空的gameobject(实际上只有脚本)。和WorldController gameobject在(0,0,0) 当我改变(-0.5,0,-0.5)它会好,但如果我改变全屏播放其再次移动。 –

+0

是的,因为所有的孩子都和父母一起移动和旋转,并且他们围绕父母的中心(或RotateAround点)做这件事 –

+0

仍然没有工作:/我在做什么错误。我可以直接进行左右转换吗? –

0

你的问题有点不清楚。但是根据我的理解,你试图让你的飞机旋转。对于这一点,你可以使用欧拉角:

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是你的飞机对象,当然。

+0

如果枢轴左下角,你的意思是你的飞机应该面向屏幕的左下角,是的,它可以工作:)面对左下方的轴和角应该是transform.eulerAngles.y + 225,但不确定。尝试改变值和受影响的轴,直到你得到你需要的东西:) – YumeYume

+0

谢谢你的答案。但我不需要飞机旋转。只需使用脚本创建一些支点。这是我的问题。 http://hizliresim.com/gog7pZ –