【Unity】对 Center/Pivot 和 Global/Local 的理解

您所在的位置:网站首页 unity怎么调整模型的坐标轴 【Unity】对 Center/Pivot 和 Global/Local 的理解

【Unity】对 Center/Pivot 和 Global/Local 的理解

2024-07-13 22:20| 来源: 网络整理| 查看: 265

Transform 组件决定游戏物体的 Position,Rotation 和 Scale。是 Unity 中非常重要的一个组件,每个 Scene 场景中的游戏物体都有 Transform 组件。

在学习 Unity 的过程中经常被世界坐标、模型坐标、中心点的位置等概念搞晕,所以在这里做一个简单的总结。

Center/Pivot 和 Global/Local 在 Unity 面板的左上角有两个按钮,这两个按钮与 Scene 场景中游戏物体上显示的坐标原点和坐标轴指向等关系密切。

Center/Pivot Center:游戏物体中心位置的坐标原点,相当于游戏物体的形状中心,是 Unity 根据游戏物体的形状自动确定的坐标点。

在上图的人物模型中坐标原点即为 Center 状态下的坐标原点。

Pivot:游戏物体自身的坐标原点,是美术设计师在建模时设置的模型原点。

在上图的人物模型中坐标原点即为 Pivot 状态下的坐标原点。

Inspector 面板中 Transform 组件中的 Position 指的就是 Pivot 状态下模型坐标点的位置。

可以看到 Center 状态下和 Pivot 状态下的坐标原点不一定是处在模型的同一位置。

Global/Local Global:在世界坐标系中三个坐标轴的指向,在这种状态下其指向始终与 Scene 场景中右上角的世界坐标轴指向相同。

通过上图可以看到,在 Center 状态下将模型以 Y 轴为中心旋转45°后模型上的坐标轴指向并没有随之改变,仍然和世界坐标轴指向相同。

Local:游戏物体自身的坐标轴指向,即美术设计师在建模时设置的坐标轴指向。

而在 Local 状态下将模型以同样的方式旋转后模型上的坐标轴指向也随之改变,其 Z 轴(即蓝色箭头指向)始终指向人物的正前方。此时,人物模型自身坐标轴指向与世界坐标轴指向不再相同。

通过上面的解释我们不妨这样理解:

Center/Pivot 决定场景中游戏物体上显示的坐标原点在模型上的位置 Global/Local 决定场景中游戏物体上显示的坐标轴的指向

父物体和子物体 当 Scene 场景中游戏物体之间存在父子关系时情况会有所不同。

在上图所示场景中,绿色方块为父物体,红色方块为子物体。此时子物体的 Transform 组件下的 Position、Rotation 和 Scale 三个属性均是相对父物体而言的。此时修改子物体(红色方块)的 Position 的值会沿着父物体(绿色方块)的自身坐标轴(不是世界坐标轴)相对移动。

在脚本中 子物体 通过transform.position修改子物体的位置,修改的是子物体相对于世界坐标空间的位置。 通过transform.localPosition修改子物体的位置,修改的是子物体相对于父物体(沿着父物体自身坐标轴方向做移动)的位置。

父物体或普通物体 通过transform.position和transform.localPosition修改物体的位置达到的效果都一样,均是沿着世界坐标轴的指向(不是物体自身坐标轴的指向)进行移动。 对于transform.localPosition不妨这样理解,因为该物体没有父物体,所以其父物体可以理解为世界坐标系,故相对于父物体的移动就是相对于世界坐标系的移动。  



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3