Unity脚本生命周期
生命周期函数的概念
所有继承MonoBehavior的脚本,最终都会挂在到GameObject游戏对象上
生命周期函数,就是该脚本对象依附的GameObject对象从出生到消亡整个生命周期中
会通过反射自动调用一些特殊函数
Unity帮助我们记录了一个GameObject对象依附了哪些脚本
会自动的得到这些对象,通过反射去执行一些固定名字的函数
生命周期函数
生命周期函数的访问修饰符一般为private和protected,因为不需要外部再调用生命周期的函数 都是Unity自己帮助我们调用的
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson01 : MonoBehaviour
{
// 当对象(自己这个类的对象)被创建时才会调用该生命周期函数
private void Awake()
{
// 在Unity中打印信息的两种方式
// 1.没有继承MonoBehavior类的时候 (假设没有继承的话,为了挂载这里只能继承)
Debug.Log("123");
//Debug.LogError("出错了");
//Debug.LogWarning("警告!!");
// 2.继承了MonoBehavior的时候 有一个现成的方法可以使用
print("1234567");
}
// 对于我们来说 想要当一个对象被激活时 进行一些逻辑处理,就可以使用这个函数
private void OnEnable()
{
print("已激活!");
}
private void Start()
{
print("start");
}
// 该函数主要是用于 进行物理更新
// 它是每一帧 执行的 但是这里的帧 和游戏帧有些不同
// 它的时间间隔 是可以在project setting中的Time中设置的
private void FixedUpdate()
{
print("FixedUpdate");
}
// 主要用于处理游戏核心逻辑更新的一个函数
private void Update()
{
print("Update");
}
// 一般这个函数适用于处理摄像机更新相关内容的
// Update和LateUpdate之间 Unity进了一些处理 处理我们动画相关的更新
private void LateUpdate()
{
print("LateUpdate");
}
// 如果我们希望在一个对象被禁用时做一些处理,就可以在该函数中写逻辑
private void OnDisable()
{
print("OnDisable");
}
private void OnDestroy()
{
print("OnDestroy");
}
}
生命周期函数支持继承多态
下面代码虽然没有继承MonoBehaviour,依然能够挂载到物体上面,因为他的父类是MonoBehaviour的子类,这也体现了多态。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson01Son : Lesson01
{
protected override void Awake()
{
base.Awake();
print("子类的Awake");
}
}
注:@唐老狮
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)