目录
一、工具栏的简单介绍
二、父子对象的关系
1. 变换继承(Transform Inheritance)
2. 激活状态继承(Active State Inheritance)
3. 生命周期绑定(Lifecycle Dependency)
4. 组件访问与脚本交互
5. 物理系统交互
6. 预制体(Prefab)层级保留
7. 坐标系与渲染顺序
关于Pivot和Center的介绍:
操作对比
关于Global和Local的介绍:
三、Untiy的工作原理及游戏场景的本质介绍
Untiy的工作原理:
1. Inspector面板的字段可视化
2. 按钮事件绑定(如UGUI)
场景的相关介绍:
一、工具栏的简单介绍
1.文件操作:新建工程,新建场景,工程打包等
2.编辑操作:对象编辑操作相关,工程设置,引擎设置相关
3.资源操作:基本等同于Project窗口中右键的相关功能
4.对象操作:基本等同于Hierarchy窗口中右键相关功能
5.脚本(组件)操作:Unity自带的脚本,可以添加各系统中的脚本
6.窗口:可以打开Unity各核心系统的窗口
7.帮助:检查更新,查看版本等等功能
二、父子对象的关系
如下所示,便是一个父对象,加两个子对象,一个父对象可以有若干个子对象。
父子之间的关系:
1. 变换继承(Transform Inheritance)
本地坐标系:子对象的Position
、Rotation
、Scale
属性均基于父对象的本地坐标系。
世界坐标系:子对象的世界坐标通过父对象的变换矩阵逐级计算。
动态影响:父对象移动、旋转或缩放时,子对象会同步跟随。
2. 激活状态继承(Active State Inheritance)
父对象禁用:父对象被SetActive(false)
时,所有子对象自动禁用。
子对象单独禁用:子对象禁用不影响父对象或其他子对象。
3. 生命周期绑定(Lifecycle Dependency)
销毁父对象:父对象销毁时,所有子对象一同销毁。
解除父子关系:通过transform.parent = null
或DetachChildren()
解除绑定。
4. 组件访问与脚本交互
- 跨层级组件查询:
GetComponentInParent<T>()
:向上查找父级组件。GetComponentInChildren<T>()
:向下查找子级组件。
- 父子对象控制:
- 父对象通过
transform.GetChild(i)
遍历子对象。 - 子对象通过
transform.parent
访问父级组件。
- 父对象通过
5. 物理系统交互
单一刚体原则:父对象的刚体控制所有子对象碰撞体的物理行为。
子对象独立刚体:需通过物理力(如AddForce
)或运动学(Kinematic)控制移动。
6. 预制体(Prefab)层级保留
实例化保留结构:预制体实例化时,父子层级关系完全保留。
嵌套预制体:子对象可以是另一个预制体的实例。
7. 坐标系与渲染顺序
本地坐标系依赖:子对象的操作基于父对象的轴心点(Pivot)。
渲染顺序:层级面板中的顺序可能影响UI或2D元素的绘制顺序。
关于Pivot和Center的介绍:
-
Pivot模式:
- 定义:以对象的建模原点(由3D软件导出时定义)为变换基准点。
- 父子关系影响:
- 父对象的Pivot是子对象本地坐标系的原点。
- 父对象的旋转、缩放会以Pivot为基准,直接影响子对象的世界位置。
- 示例:若父对象绕Pivot旋转,子对象会以该点为中心跟随旋转。
-
Center模式:
- 定义:以对象的几何中心(模型包围盒的中心)为变换基准点。
- 父子关系影响:
- 父对象的Center仅影响其自身的变换操作,不改变子对象的本地坐标系原点。
- 若父对象绕Center旋转,子对象的世界位置会因父对象几何中心的变化而偏移。
- 示例:若父对象是长方体,Center模式旋转时,子对象会绕长方体中心旋转。
例如:
上面是Pivot,下面是center ,总的来说就是Center模式下,是计算得出的整个物体对象的中心位置,Pivot 就是一个物体他自己本身的中心点位置,仅局限于当前选中部分。可以去实际动手操作一下!
操作对比
模式 | 基准点来源 | 父子关系影响 | 典型用途 |
---|---|---|---|
Pivot | 建模原点 | 子对象本地坐标系基于父Pivot | 门轴旋转、机械关节 |
Center | 模型几何中心 | 子对象位置因父几何中心变化而偏移 | 对称缩放、中心对齐 |
关于Global和Local的介绍:
Global(全局坐标系):
定义:以场景原点(0,0,0)为基准的世界坐标系。
父子关系影响:
在Global模式下操作父对象时,直接修改其世界坐标,子对象的本地坐标会动态计算以适应父对象的新位置。
示例:若父对象在Global模式下移动,子对象的世界坐标会同步变化,但其本地坐标可能改变。
Local(本地坐标系):
定义:以父对象的坐标系为基准(若对象无父级,则与Global一致)。
父子关系影响:
父对象的变换操作基于其自身的坐标系,子对象的本地坐标保持不变。
示例:父对象在Local模式下向右移动,子对象会跟随移动,但其本地坐标的X值不变。
操作对比
坐标系 | 基准点 | 父子关系影响 | 典型用途 |
---|---|---|---|
Global | 场景原点 | 父对象移动直接影响子对象世界坐标 | 跨场景对齐、绝对定位 |
Local | 父对象坐标系 | 子对象本地坐标不变,世界坐标跟随父级 | 相对运动、层级动画 |
三、Untiy的工作原理及游戏场景的本质介绍
Untiy的工作原理:
Unity中的反射机制:Unity引擎本质是一个软件 使用它时是处于运行中的 我们是在一个运行的软件里制作游戏的 Unity开发的本质就是 在Unity引擎的基础上 利用反射和引擎提供的各种功能 进行的拓展开发 例如:
1. Inspector面板的字段可视化
- 现象:脚本中定义的
public
变量自动出现在Unity编辑器的Inspector面板中。 - 反射作用:Unity通过反射扫描脚本的公共成员,动态生成对应的UI控件,无需手动绑定。
2. 按钮事件绑定(如UGUI)
- 现象:在Unity编辑器中拖拽指定函数到按钮的
OnClick
事件。 - 反射作用:Unity反射查找脚本中的方法名,并在运行时动态绑定到按钮的点击事件,实现零代码交互
场景的相关介绍:
场景怎么生成?Project->Create->Scene
怎么保存,Ctrl + S,保存的时候记得取好名字,提高辨识度。
多个场景的叠加怎么实现?直接将另外一个建好的场景拖入到你现在的场景即可。
游戏场景的本质是什么?
选中你的场景 Show in Explore 就是在文件管理器中查看了
在文件管理器中我们可以看到场景其实就是一串代码:
打开看看:可以看到是一堆配置属性
游戏场景的本质:
游戏场景文件 后缀为.unity
它的本质就是一个配置文件
Unity有一套自己识别处理他的机制
但是本质就是把场景相关信息读取出来
通过反射来创建各个对象关联各个脚本对象