【Unity入门】MonoBehaviour事件函数

    大家好,我是Lampard~~

    欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢

(一)常用的事件函数

(1)start和update方法

    之前我们写的脚本,会默认帮助我们继承于MonoBehaviour类,MonoBehaviour是unity的一个基类,类似于cocos的object

MonoBehaviour是Unity引擎中的一个基类,用于编写游戏对象的脚本,开发者可以通过继承MonoBehaviour类并实现其中的方法来实现游戏对象的交互行为和游戏机制

    默认创建的C#脚本会自带两个方法,分别是start和update。我们通知之前的使用知道,start是脚本初始化时候会被调用一次,update会每帧进行调用,而游戏的帧率我们可以通过Application.targetFrameRate来进行设置

    这两个方法我们很熟悉,下面会介绍其他三种常见的事件函数

(2)awake方法

    Awake方法是MonoBehaviour类中的一个回调方法,在游戏对象被创建时调用,用于初始化游戏对象的属性和状态,在Start方法之前执行

Awake方法的作用一般是进行游戏对象的初始设置,例如获取其他组件的引用、初始化变量、设置默认参数等。在Awake方法中进行这些初始化设置可以保证在Start方法之前完成,从而避免在Start方法中出现未初始化的情况

    从上文得知,Awake和Start类似都是会执行一次进行初始化使用。它们的区别在于,Awake在Start之前调用,且哪怕物体是禁用状态,Awake也会执行

    比如小车物体挂载了FirstLogic脚本,我们现在把代码设置禁用状态,设置如下代码

    void Awake(){Debug.Log("正在执行Awake方法");}void Start(){Debug.Log("正在执行Start方法");}

    看看执行结果:

     如果我们把代码的勾选项勾上呢,就会出现Awake先比sStart执行的结果

(3)onEnable方法和onDisable方法

    onEnable和onDisable方法会分别在脚本启用和禁用的时候调用

    需要注意的是,onEnable方法和onDisable方法在游戏对象的生命周期中可能会多次被调用,因此在实现时需要注意避免重复注册和清理等情况

    举个栗子,我们加上以下代码:

    private void Awake(){Debug.Log("正在执行Awake方法");}private void onEnable(){Debug.Log("正在执行onEnable方法");}private void onDisable(){Debug.Log("正在执行onDisable方法");}void Start(){Debug.Log("正在执行Start方法");}

    看看结果,只要物体被调用/禁用的时候代码就会执行:

好啦今天就到这里,感谢阅读!!!
点赞,关注!!!

【Unity入门】12.MonoBehaviour事件函数相关推荐

  1. Unity基础开发之事件函数的执行顺序

    Unity基础开发之事件函数的执行顺序 文章目录 前言 一.Initializtion阶段 Awake() OnEnable() 二.Editor阶段 Reset() OnValidate() 三.第 ...

  2. Unity学习之常用事件函数Update深度解析

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.常规更新函数 Update() FixedUpdate() LateUpdate() 总结 前言 Unity与常规 ...

  3. Unity 入门笔记 - 05 - 动画事件类音效对话框

    Unity 入门笔记 - 05 - 动画事件&类&音效&对话框 前言:无 目录 Unity 入门笔记 - 05 - 动画事件&类&音效&对话框 一.动画 ...

  4. Execution Order of Event Functions, unity 3d 事件函数的执行顺序

    vs_Community.exe --layout "F:\linson\vs2017 comm\offline" --lang zh-CN 学习unity3d,感觉事件顺序很重要 ...

  5. Unity事件函数OnMouseDown生效条件

    前言 通常,挂载一个脚本到物品上,可以通过重载函数OnMouseDown的方式直接实现鼠标点击该物品的逻辑. 然而,OnMouseDown这个方法并不是任何一个物品,场景下都可以生效的万能方法,我们还 ...

  6. Unity+C#开发笔记(七)| unity中继承MonoBehaviour类的脚本里的函数怎么调用 | ╭(●`∀´●)╯╰(●’◡’●)╮

    继上文,有个蠢货单例模式只是用来引用,突然遇到了一个继承了MonoBehaviour的类,然后unity跟你讲:不!你不可以在我这里这么用! 啊这--吓得我当场百度... ************** ...

  7. Unity入门 ---- unity2D基础知识

    Unity入门 DAY 一: 向量Vector 向量夹角 物体的指向 屏幕坐标 DAY 二 鼠标事件处理 探测鼠标事件 鼠标跟随事件 鼠标拖拽 事件函数 Event Functions 脚本的执行顺序 ...

  8. Unity 入门笔记 - 07(完) - 菜单手机端静态类生成游戏

    Unity 入门笔记 - 07(完) - 菜单&手机端&静态类&生成游戏 前言:入门笔记的最后一篇.这个系列教程看完了.接下来有空就看例子项目,动手做点东西. 目录 Unity ...

  9. 【Unity入门计划】制作RubyAdventure03-使用碰撞体触发器实现世界交互

    目录 8 添加生命系统 演示效果 9 使用触发器实现吃血包 9.1 添加一个可以被吃掉的血包 10 使用触发器添加伤害区域 10.1 设置伤害区域 10.2 设置无敌时间 关于无敌时间的讨论 10.3 ...

最新文章

  1. QCustomPlot的简单用法总结
  2. python爬虫学习(三):使用re库爬取淘宝商品,并把结果写进txt文件
  3. Java设计模式——桥模式
  4. RabbitMQ消息队列(十三)-VirtualHost与权限管理
  5. NIUDAY 11.23 北京站抢票啦 | 看 AI 落地行业 享 AI 时代红利
  6. linux进程cpu时间片,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...
  7. 运维老鸟教你安装centos6.5如何选择安装包
  8. windows环境下zookeeper做成服务并启动
  9. 人工智能(第一章 绪论)
  10. 中国移动MM如何解决盗版问题
  11. celery报错 NotImplementedError: No result backend is configured
  12. CentOS6.5服务器端口捆绑
  13. 数据增强-亮度-对比度-色彩饱和度-色调-锐度 不改变图像大小 --增加ssd目标框xml文件的同步处理方法。
  14. Jetson TX2 apt换源
  15. npm 安装依赖报错解决方法总结
  16. mysql引擎与优化
  17. MSF Risk Management Discipline
  18. spark-submit 提交任务及参数说明
  19. 从NMS谈起——实时ANMS
  20. H.264视频编解码的FPGA源码分析(一)输入数据分析

热门文章

  1. 贴片加工钢网的使用方法
  2. 深度残差网络+自适应参数化ReLU激活函数(调参记录8)
  3. Appium 启动 App Code: ‘255‘ 错误
  4. MAC太凶狠,回忆过美丽 ——《硅谷革命》 读后感
  5. IDEA出现乱码的各种解决方法
  6. OpenCV实践小项目(三) - 停车场车位实时检测
  7. Java 字符流转字节流
  8. 王者荣耀s15服务器维护,王者荣耀S15战令系统最新调整 经验等级重置 限定皮加入宝箱抽取...
  9. 阿凡达云计算机,云计算中心:在云端我们也能做《阿凡达》
  10. PHP 函数 数组引用传参数