【Unity 入门教程】二、核心概念

前言

在进行游戏开发之前,需要了解一些游戏相关的核心概念,有利于对游戏开发框架有一定理解能力。

复制代码
简而言之,Unity = 场景(Scene) + 物体(GameObject) + 功能(Component + Script) + 资源(Assets),所有东西都在每帧循环中更新和渲染。

速记表

概念 是什么 类比(前端/现实世界) 理解方式
Scene(场景) 游戏运行的空间/关卡 网页的页面 一个游戏可包含多个场景,如登录场景、战斗场景
GameObject(游戏对象) Unity 世界里的所有东西(角色、树、灯、摄像机) DOM 节点(div、img、button) 是容器,本身没功能
Component(组件) 赋予 GameObject 功能的模块 DOM 的属性 / CSS + JS 物体的行为和外观由组件决定
Transform 位置、旋转、缩放 style: position/rotate/scale 每个物体都必须有
Rigidbody(刚体) 让物体受物理力影响(重力、推力) 物理引擎里的动力学 物体才会"掉下来"或被推
Collider(碰撞体) 定义物体的物理边界 div 的点击区域 用于检测碰撞或触发
Script(脚本) 用 C# 写的逻辑 JS 脚本/React 逻辑 控制交互,如键盘输入、移动
Prefab(预制体) 可复用的 GameObject 模板 React 组件 一张卡牌的模板,可实例化多个
Camera(摄像机) 决定玩家看到的画面 浏览器 viewport / 摄像机 没有相机就看不到世界
Lighting(光照) 控制光影和氛围 CSS 的 box-shadow + filter 没有光源就一片漆黑
Assets(资源) 模型、贴图、音效、脚本的集合 /public 或 /assets 文件夹 游戏的素材库
Game Loop(游戏循环) 每帧处理输入、逻辑、物理、渲染 requestAnimationFrame 循环 游戏实时运行的核心机制

1. 场景(Scene)

类似网页界面,是游戏运行时的一个独立空间。

一个游戏可以有多个 Scene。比如:登录界面、战斗场景、结算界面。

开发时,你在 Scene 里放各种物体(3D Cube、模型、灯光、摄像机)。

理解方式:游戏从"主菜单场景"跳到"战斗场景",再切到"结算场景",就像网页跳转。

2. 游戏对象(GameObject)

Unity 世界里的 一切东西都是 GameObject(方块、角色、灯光、相机)。

但 GameObject 本身只是一个"空容器",没有功能。

功能由组件(Component) 决定。比如,前端里 div 是个空盒子,样式/逻辑要靠 CSS/JS 脚本去赋予。

理解方式:GameObject 只是容器,没有功能,需要组件来赋予它行为。

3. 组件(Component)

挂载在 GameObject 上的"功能模块"。

常见组件

  • Transform:位置、旋转、缩放(每个物体都必须有)。
  • Rigidbody:让物体受物理影响(重力、碰撞)。
  • Collider:碰撞体,决定物体是否能和别的东西碰撞。
  • Script(C# 脚本):你写的逻辑。

类比:前端的 CSS + JS 属性,决定 DOM 的样子和交互。

例子:

  • Transform(位置/旋转/缩放)= div 的 style
  • Rigidbody(刚体)= 让物体受物理力影响
  • Collider(碰撞体)= 定义物体边界

4. 脚本(Script,C#)

Unity 用 C# 脚本 写逻辑。

常见生命周期函数

  • Start():物体创建时运行一次。
  • Update():每帧都会执行(适合实时输入检测)。
  • FixedUpdate():每帧固定时间运行(适合物理运算)。
  • LateUpdate():在所有 Update() 之后运行(常用于摄像机跟随)。

理解方式:脚本通过 Update() 每帧运行,持续控制 GameObject。

5. 物理系统

类似于模拟的现实生活中的物理系统。

类比:前端里的 碰撞检测 / 动画引擎,但更强大。

常见物理模型有

  • Rigidbody(刚体):受重力和力的影响。
  • Collider(碰撞体):形状边界,决定是否能"撞上"。
  • Trigger(触发器):一种特殊 Collider,不阻挡但能触发事件(类似 onClick)。

Rigidbody + Collider = 球能落地

Trigger = 碰到某个区域触发事件

6. 摄像机(Camera)

决定玩家看到的画面。

你可以有多个 Camera(主角视角 / 小地图)。

类比:网页中的 viewport,但可以随时移动/旋转。

理解方式:如果没有 Camera,就像前端没有渲染 DOM。

7. 光照(Lighting)

灯光决定物体的亮暗和阴影。

常见光源:Directional Light(太阳光)、Point Light(灯泡)、Spotlight(手电筒)。

类比:前端里的 CSS box-shadow + filter。

理解方式:没有光,3D 世界就是一片漆黑。

8. 预制体(Prefab)

可以理解为 组件模板 / 可复用对象,现实生活中理解成预制菜

类比:React 里的 可复用组件。

例子:你做了一张卡牌,把它保存为 Prefab,以后生成 100 张卡牌时直接实例化。

9. 资源(Assets)

你在 Unity 里用到的一切素材(模型、贴图、音效、脚本)。

类比:前端的 静态资源目录(/public、/assets)。

10. 运行循环(Game Loop)

Unity 的游戏本质上是一个循环:

Unity 每帧执行的逻辑:

  1. 处理输入(键盘/鼠标/手柄)
  2. 更新逻辑(脚本)
  3. 更新物理(重力、碰撞)
  4. 渲染画面(Camera 输出)

类比:前端的 requestAnimationFrame 循环,不断重绘页面。

相关推荐
陈言必行11 小时前
Unity 性能优化 之 实战场景简化(LOD策略 | 遮挡剔除 | 光影剔除 | 渲染流程的精简与优化 | Terrain地形优化 | 主光源级联阴影优化)
unity·性能优化·游戏引擎
爱吃小胖橘14 小时前
Unity-动画基础
unity·c#·游戏引擎
陈言必行14 小时前
Unity 性能优化 之 内存优化
unity·性能优化·游戏引擎
ellis197015 小时前
LuaC API开发环境搭建保姆级教程
c++·unity·lua
玉龙202515 小时前
虚幻引擎(UE5)中实现物体破碎的方法
游戏引擎·虚幻·破碎系统·虚幻引擎破碎·虚幻引擎基础入门·ue5d基础入门
UsagiKnight17 小时前
UE5小游戏开发 - 武士决斗
ue5·游戏引擎·游戏程序
绀目澄清17 小时前
Unity 游戏引擎中 HDRP(高清渲染管线) 的材质着色器选择列表
unity·游戏引擎·材质
ellis197019 小时前
toLua[二] Examples 01_HelloWorld分析
unity·c#·lua
SmalBox20 小时前
【光照】[环境光ambient]以UnityURP为例
unity·渲染