欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Unity基础学习(二)Unity中的父子关系及Unity的工作原理

Unity基础学习(二)Unity中的父子关系及Unity的工作原理

2025/9/22 9:12:37 来源:https://blog.csdn.net/m0_74212916/article/details/147035995  浏览:    关键词:Unity基础学习(二)Unity中的父子关系及Unity的工作原理

目录

一、工具栏的简单介绍

二、父子对象的关系

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)​

        本地坐标系​:子对象的PositionRotationScale属性均基于父对象的本地坐标系。

        世界坐标系​:子对象的世界坐标通过父对象的变换矩阵逐级计算。

        动态影响​:父对象移动、旋转或缩放时,子对象会同步跟随。


2. 激活状态继承(Active State Inheritance)​

        ​父对象禁用​:父对象被SetActive(false)时,所有子对象自动禁用。

        子对象单独禁用​:子对象禁用不影响父对象或其他子对象。


3. 生命周期绑定(Lifecycle Dependency)​

        销毁父对象​:父对象销毁时,所有子对象一同销毁。

        解除父子关系​:通过transform.parent = nullDetachChildren()解除绑定。


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模型几何中心子对象位置因父几何中心变化而偏移对称缩放、中心对齐

关于GlobalLocal的介绍: 

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有一套自己识别处理他的机制
        但是本质就是把场景相关信息读取出来
        通过反射来创建各个对象关联各个脚本对象

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词