首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity5平面支点创建

Unity5平面支点创建
EN

Stack Overflow用户
提问于 2016-07-12 13:09:13
回答 2查看 36关注 0票数 0

我用c#脚本创建了一个50x50平面。我用的是顶点,紫外线和三角形。而那些飞机形成了一个区域。所以这里没问题。但是我的Plane__0是第一个定位在中心的。我需要每架飞机都转到左下角。我如何用脚本旋转左下角?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-12 13:57:28

好吧,我想我知道了。你想让左下角的“瓷砖”成为整个"tileset“/ "map”的中心,所以如果你旋转“所有东西”,那就应该是中心。

好吧,这很简单。您需要做的是,让Plane__0瓷砖成为其余瓷砖的父块(设置所有想要成为转向“枢轴瓦”的一部分的瓷砖的.Parent属性)。

稍后,你可以改变这个。因此,如果其他一些瓷砖应该是枢轴中心,你可以“重置育儿”。但修复是一项昂贵的例行工作。

编辑

正如我上面所写的,修复是一项昂贵的操作,我正在考虑其他的方法,这就是我所使用的方法:在没有网格渲染器、对撞机等的情况下创建一个GameObject (假设另一个平面),并将其拉出到字段的大小(在编辑器中)。让它成为现场所有瓷砖的家长。然后,每当你需要‘枢轴’所有东西,你可以选择父平面的RotateAround,标记旋转中心,任何时候你想(例如“上方”左下角瓷砖)。

我还会修改标准的统一Plane,并从它中删除Mesh Collider,用一个简单的Box Collider替换它,将其保存为预制件,并使用预制件作为我的瓷砖来节省一些计算时间(如果飞机的任务只是作为一个平台)。

票数 0
EN

Stack Overflow用户

发布于 2016-07-12 13:49:59

你的问题有点不清楚。但据我所知,你是想让你的飞机旋转。为此,可以使用Euler Angles:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38329863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档