【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 循环,不断重绘页面。

相关推荐
future_studio8 小时前
聊聊 Unity(小白专享、熟悉基础编程 ... ...)
unity·游戏引擎
ellis197020 小时前
toLua[六] Examples 05_LuaCoroutine分析
unity
程序员正茂1 天前
Unity3d中Tab控件的实现
ui·unity·tab·控件
三掌柜6662 天前
突破AR视觉交互边界:Unity赋能Rokid AR眼镜实现高精度图像识别与实时跟踪
unity·ar·交互
Brianna Home2 天前
Godot4.3开发2D游戏全记录
游戏·游戏引擎·godot·游戏程序·动画
王维志2 天前
使用Asp.Net WebApi(.net 8)托管Unity WebGL
unity·游戏引擎·webgl
开发游戏的老王2 天前
虚幻引擎入门教程:虚幻引擎的安装
游戏引擎·虚幻
muyouking112 天前
Unreal Engine 中的旋转表示:FQuat 与 FRotator 全面解析
游戏引擎·虚幻
lrh30253 天前
Custom SRP 12 - HDR
3d·unity·srp·render pipeline
霜绛3 天前
Unity:Json笔记——Json文件格式、JsonUtlity序列化和反序列化
学习·unity·json·游戏引擎