Unity核心类图学习总结

image

1. Object基类

  • 根类地位:所有Unity对象的基类(GameObject、Component、资源等均继承于此)
  • 核心能力:
    • 生命周期管理:提供Destroy()销毁对象、DontDestroyOnLoad()跨场景保留对象的方法。
    • 实例化控制:Instantiate()用于克隆预制体或场景对象。
    • 唯一标识:GetInstanceID()为每个对象分配唯一ID,用于精确追踪。
  • 资源类型:派生类包括Texture、Material、Prefab等资源管理类。

2. GameObject(游戏对象)

  • 角色:场景中的实体容器,通过附加组件实现功能。
  • 核心特性:
    • 必须组件:所有GameObject自动包含Transform(管理位置/旋转/缩放)
      • AddComponent<T>():动态添加组件(如刚体、碰撞器)。
      • GetComponent<T>():获取组件引用。
    • 层级结构:支持父子关系,子对象继承父对象的变换与激活状态。
    • 标识系统:Tag(标签分类)和Layer(物理/渲染分层)。
  • 生命周期:与MonoBehaviour脚本联动。

3. Component(组件)

  • 角色:附加到GameObject的功能模块基类。
  • 关键派生类:
    • Transform:管理物体空间属性(位置/旋转/缩放),不可移除。
    • Behaviour:可启用/禁用的组件基类,派生出MonoBehaviour。
    • 物理组件:Rigidbody(物理模拟)、Collider(碰撞检测)。
    • 渲染组件:Renderer(外观控制)、Camera(视图投影)、Light(光照)。

4. MonoBehaviour(脚本基类)

  • 角色:所有用户脚本的基类,继承自Behaviour。
  • 核心功能:
    • 生命周期:
    • 初始化阶段:
      • Awake():初始化基础变量、引用组件(如 GetComponent)
      • OnEnable():注册事件、重启临时逻辑(如重新显示 UI)
      • Start():在 Awake 和 OnEnable 后,首次 Update 前调用(仅当脚本启用时),执行依赖初始化的逻辑(如读取配置数据)。
    • 更新阶段:
      • FixedUpdate():固定时间间隔调用(默认 0.02 秒),处理物理相关逻辑(如 Rigidbody 力的施加)
      • Update():每帧调用一次(帧率依赖,非固定)。
      • LateUpdate():所有 Update 执行完毕后调用,依赖其他对象状态的逻辑(如相机跟随角色移动)。
      • OnGUI():每帧调用多次(至少 2 次,处理布局和渲染事件)。
    • 销毁阶段:
      • OnDisable():脚本被禁用或所属游戏对象失活时调用,清理临时资源、取消事件注册。
      • OnDestroy():脚本或游戏对象被销毁时(如 Destroy(gameObject)),释放持久资源、保存数据。
      • OnApplicationQuit():应用退出前最后调用(如关闭窗口或退出 App)。

初始化阶段:
Awake() → OnEnable() → Start()
↳ (若脚本被禁用:跳至 OnDisable)
更新循环(每帧):
FixedUpdate() → Update() → LateUpdate() → OnGUI()
↳ (物理更新) ↳ (核心逻辑) ↳ (后期逻辑)
销毁阶段:
OnDisable() → OnDestroy()
↳ (应用退出时额外触发 OnApplicationQuit())

posted @ 2025-06-19 18:02  zetta  阅读(88)  评论(0)    收藏  举报