574 字
2 分钟
Unity程序重要概念
2026-04-26

一、MonoBehaviour生命周期#

一个继承自MonoBhaviour的类有以下生命周期:

Awake 在Script被加载时执行一次
OnEnable
Start 在游戏开始运行时执行一次
FixedUpdate 每隔一段固定时间执行一次(默认为0.02s)
Physics Events
Input Events
Update 每帧之后执行一次
LateUpdate
Rendering Events
OnDisable

二、Unity中几个重要的类与结构#

1. GameObject 游戏对象类#

Component类中有定义gameObject这个变量,使用它可以访问当前GameObject

GameObject常用字段

name
tag
layer
transform

GameObject常用方法

SetActive 设置物体激活状态
Destroy 摧毁对象
Instantiate 实例化对象
AddComponent 添加组件
CreatePrimitive 创建Unity自带的物体

2. Component 组件类#

Component类包括了所有组件,包括Unity自带的和我们自己创建的

MonoBehavioour继承自Component

GetComponent 方法

使用代码修改Sprite颜色
SpriteRenderer sr = GetComponent<SpriteRenderer>();
sr.color = Color.red;

3. Vector3 三维向量结构#

Vector3代表一个三维向量,它可以用来表示位置/距离/方向等等

Vector3 v = new Vector3(1.2f,1.5f,-0.5f);
print(v.x)
print(v.y)
print(v.z)

Vector3内置的模板

变量名说明等价写法
Vector3.zero原点 / 零向量new Vector3(0, 0, 0)
Vector3.one各轴均为1的向量new Vector3(1, 1, 1)
Vector3.forward世界坐标系的前方 (Z轴正方向)new Vector3(0, 0, 1)
Vector3.back世界坐标系的后方 (Z轴负方向)new Vector3(0, 0, -1)
Vector3.right世界坐标系的右方 (X轴正方向)new Vector3(1, 0, 0)
Vector3.left世界坐标系的左方 (X轴负方向)new Vector3(-1, 0, 0)
Vector3.up世界坐标系的上方 (Y轴正方向)new Vector3(0, 1, 0)
Vector3.down世界坐标系的下方 (Y轴负方向)new Vector3(0, -1, 0)

Vector3常用函数

返回两个点之间的距离
Vector3 v = new Vector3(1.2f, 0, 0);
Vector3 u = Vector3.up;
float dist = Vector3.Distance(u,v);

4. Transform 变换类#

Transform管理GameObject的位置/旋转/缩放

每一个GameObject都有Transform,它是唯一一个有此性质的Component

transform在GameObject类和Component类都有定义

因为MonoBehaviour继承自Component
所以可以直接写 tranform直接访问

Transform常用字段

position 世界坐标系中的位置
localPosition 相对于父物体的局部位置
rotation 定义和控制对象在三维空间中的朝向
lossyScale 相对于世界坐标系的缩放
localScale 相对于其父物体的缩放

Transform常用方法

Translate 让物体位移的方法
GetChild 获得子物体的对象

5. Time 时间类#

Time类包含了和游戏时间相关的信息

Time常用变量

Time.deltaTime 代表一帧(两次Update之间)的时长
Time.fixedDeltaTime 代表两次FixedUpdate之间的时长

每秒执行代码片段

void Update()
{
timer += Time.deltaTime;
if(time > 1)
{
timer = 0;
}
}

6. Input 输入类#

Input类提供了接收玩家输入的方法

Input常用方法

Input.GetKeyDown() 按下键盘按键的瞬间为true
Input.GetMouseButtonDown() 按下鼠标按键的瞬间为true
Input.GetKey() 键盘按键被按着时一直为true
Input.GetKeyUp() 当抬起一个键盘按键的瞬间为true

CSharp中的静态和范围#

静态#

static 关键字可以用来修饰变量、函数或者是类。

一般情况我们访问一个类中的变量或函数时需要通过那个类的实例访问

而静态成员的变量或函数属于这个类本身,和实例完全没关系。因此访问静态成员时只需要用类名.成员就好

范围#

每个变量都是只在一定的范围内生效的,在范围之外是不可访问的

简单来说,一个变量的范围是它所在花括号其中的部分,它只在花括号之间生效

void Start()
{
//i只能在括号内访问
for(i=0;i<20;i++){
print(i);
}
int sum = Add(1);
}
//a和b也只在括号内有效
int Add(int a)
{
int b =1;
return a + b;
}
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Unity程序重要概念
https://blabka.me/posts/unity笔记2unity程序重要概念/
作者
Blabka
发布于
2026-04-26
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录