我用c#脚本创建了一个50x50平面。我用的是顶点,紫外线和三角形。而那些飞机形成了一个区域。所以这里没问题。但是我的Plane__0是第一个定位在中心的。我需要每架飞机都转到左下角。我如何用脚本旋转左下角?
发布于 2016-07-12 13:57:28
好吧,我想我知道了。你想让左下角的“瓷砖”成为整个"tileset“/ "map”的中心,所以如果你旋转“所有东西”,那就应该是中心。
好吧,这很简单。您需要做的是,让Plane__0瓷砖成为其余瓷砖的父块(设置所有想要成为转向“枢轴瓦”的一部分的瓷砖的.Parent属性)。
稍后,你可以改变这个。因此,如果其他一些瓷砖应该是枢轴中心,你可以“重置育儿”。但修复是一项昂贵的例行工作。
编辑
正如我上面所写的,修复是一项昂贵的操作,我正在考虑其他的方法,这就是我所使用的方法:在没有网格渲染器、对撞机等的情况下创建一个GameObject (假设另一个平面),并将其拉出到字段的大小(在编辑器中)。让它成为现场所有瓷砖的家长。然后,每当你需要‘枢轴’所有东西,你可以选择父平面的RotateAround,标记旋转中心,任何时候你想(例如“上方”左下角瓷砖)。
我还会修改标准的统一Plane,并从它中删除Mesh Collider,用一个简单的Box Collider替换它,将其保存为预制件,并使用预制件作为我的瓷砖来节省一些计算时间(如果飞机的任务只是作为一个平台)。
发布于 2016-07-12 13:49:59
你的问题有点不清楚。但据我所知,你是想让你的飞机旋转。为此,可以使用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是你的平面物体。
https://stackoverflow.com/questions/38329863
复制相似问题