Unity脚本基础
文章目录
1、脚本基本规则
1、创建规则
2、MonoBehavior基类
1、创建脚本继承MonoBehavior,才能挂载在GameObject上
2、继承了MonoBehavior的脚本不能new对象,不能写构造函数
3、继承了MonoBehavior的脚本可以挂载多个,(DisallowMultipleComponent特性除外)
4、继承MonoBehavior的类可以再被继承,遵循多态
3、不继承MonoBehavior的类
1、不能挂载在GameObject上
2、需要new
3、一般是单例模式的类(用于管理模块)或者数据结构类(用于存储数据)
4、不用保留默认出现的函数
4、执行的先后顺序
Execution Order设置
5、默认脚本内容
Editor\Data\Resources\ScriptTemplates
2、生命周期函数
游戏本质是一个循环,一帧就是一次循环
FPS(Frames Per Second)每秒钟帧数
FPS 60 :一秒更新60次画面
人眼可视帧数每秒24帧
1、概念
所有继承MonoBehavior的脚本最终都会挂载到GameObject游戏对象上
生命周期函数就是该脚本对象依附的GameObject对象从出生到消亡整个生命周期中
会通过反射自动调用的一些特殊函数
Unity帮助我们记录了一个GameObject对象依附了哪些脚本
会自动得到这些对象,通过反射去执行一个固定名字的函数
这些固定名字的函数就是生命周期函数
2、生命周期函数有哪些
访问修饰符一般为private和protected
不需要外部调用,Unity调用
对象出生
AWake(调用一次)
出生时调用,类似构造函数,一个对象只调用一次
OnEnable(激活时调用)
依附的GameObject对象每次激活时调用
Start(调用一次)
从自己被创建出来后,第一次帧更新之前调用一个对象只会调用一次
FixedUpdate(循环时调用)
物理帧更新,固定间隔时间执行,间隔时间可以设置
Update (循环时调用)
逻辑帧更新,每帧执行
LateUpdate(循环时调用)
每帧执行,于Update之后执行
OnDisable (失活时调用)
依附的GameObject对象每次失活时调用
OnDestroy(调用一次)
对象销毁时调用,依附的GameObject对象被删除时
对象死亡
//当对象(自己这个类对象)被创建时,才会调用该声明周期函数
//类似构造函数,在一个类对象创建时进行初始化操作
void Awake()
{
//打印信息的两种方式
//1、没有继承MonoBehavior类的时候
Debug.Log("日志");
Debug.LogError("err");
Debug.LogWarning("warning");
//2、继承了MonoBehavior,有线程的方法
print("打印信息");
}
//对象激活时,逻辑处理
void OnEnable()
{
print("OnEnable");
}
//初始化信息,相对Awake晚一点,在对象进行第一次帧更新之前执行
void Start()
{
print("Start");
}
//用于物理更新,每一帧执行,这里的帧和游戏帧有点不同(可以控制时间默认0.02)
//在project setting中的Time设置
void FixedUpdate()
{
print("FixedUpdate");
}
//主要用于处理游戏核心逻辑更新的函数
void Update()
{
print("Update"