【Unity入门】相对和绝对
大家好,我是Lampard~~
欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢
(一)相对和绝对
上一篇文章我们学习了对Assert目录下的资源进行打包,并且能够将资源包导入导出。今天主要学习一些相对和绝对关系
(1)子节点和父节点
和cocos一样啊,一个控件(模型)一旦构成了父子关系,那么子控件就会随父节点的移动而移动,缩放而缩放
首先我们回顾一下如何在场景中创建3D物体:首先我右键创建3D object,选择了Plane一个面和tree一棵树,再把一个绿色的材质挂在了平面上就有点草地长出一棵树的感觉了
紧接着我们把树挂在平面上,随意拖动平面:可以看到小树也是跟着移动的,再观察小树的transfrom组件的position信息,发现其坐标不会随着平面的移动而改变,那是因为此时的坐标是相对的,相对于平面小树它没有移动
(2)空节点
一棵小树长在平地上,它们构成父子节点很合理。但是有一些情况,比如地球和月球组成了一个地月系统,说地球是父好像也不太对,毕竟月球虽然绕着地球转,但也不至于说月亮是地球的一部分吧。此时选不出合适的对象作为父节点时,可以用一个空节点来作为它们的父节点
什么是空节点?空节点的作用是什么?
在Unity中,空物体(Empty Object)是一种没有任何渲染或碰撞组件的基本游戏对象,它可以被用作场景中的占位符或组织结构。空物体本身不会对场景渲染或物理模拟产生影响,但可以包含其他游戏对象作为其子对象,从而形成层次结构。
空物体的主要作用包括:
1. 组织场景结构:游戏场景通常包含大量的游戏对象,使用空物体作为父对象可以方便地组织场景结构,便于开发者管理和操作。
2. 作为触发器:虽然空物体本身不具有碰撞组件,但可以将其作为触发器使用。例如,通过将空物体作为触发器,可以让玩家触发事件或改变游戏状态。
3. 控制游戏流程:空物体可以用于控制游戏流程,例如表示关卡开始或结束的标记物体。同时,空物体也可以作为场景的占位符,方便开发者进行布局和调整
那怎么创建一个空节点呢? 很简单,在层级管理器Hierarchy上右键出菜单,会看见一个create Empty的选项,那就是空节点
可以看到,作为一个空节点,真的除了位置旋转缩放信息是什么都没有的
然后我们把地球和月亮模型挂在节点下面,就是我们想要的地月系统了
(3)Global和Local
在选择场景移动,旋转,缩放模式的菜单栏右侧,会有一个Pivot支点和Local本地按钮,那这两个按钮是干啥的呢?首先是Local,点击之后我们可以选择Local或者Global模式
它们的差别在于,Global是全局的,在Global模式下,不管你的控件怎么旋转,头朝哪,控件的移动只会沿着东南西北方向的移动。但是比如一辆小汽车,旋转了45°之后,明明车头方向发生了偏移,但是还是直直的走就会很奇怪,而Local可以根据自身的便宜旋转方向,按照调整后的方向去走,也就是永远朝着车头方向,这样会更符合我们的预期
(4)Pivot和Center
用过cocos我们知道锚点,锚点可以设置在控件的任何一个地方,甚至是控件以外的位置。而unity也是一样的,3d对象的轴心点可以设置在任何一个地方(只能在模型编译器中设置,unity自带的编译器不支持设置锚点位置)
而Pivot轴心点和Center几何中心的区别就是在于,我们究竟是按照其锚点的位置对其进行缩放移动旋转,还是说按照这个物体的几何中心
同时选中两个物体就会很明显,比如我同时选中地球和小车旋转,Pivot模式下它们是自己转自己的,它们有各自的锚点。但是在Center模式下,会把两个对象当成一个物体,然后计算他们的几何中心,然后就绕着中心转圈圈了...