目录

一、游戏开始时调用一次的

1 Awake

2 OnEnable

3. Start

-----Awake、OnEnable、Start运行顺序

二、持续执行的函数

1. FixedUpdate

2. Update

---实现小功能

3. LateUpdate

4. OnGUI

三、收尾

1. OnDisable

2. OnDestroy

生命周期函数介绍


一、游戏开始时调用一次的

1 Awake

描述:哟咻开始时第一个调用的回调函数,调用一次

特点:当脚本组件处于不可用时,依然执行

    /// <summary>/// 在游戏开始时执行一次/// </summary>private void Awake(){//若没有继承MonoBehaviour,打印信息可以debug.Log();Debug.Log("Awake运行了");Debug.LogWarning("警告");Debug.LogError("出错了");//继承了MonoBehaviour,可以print打印print("打印");}

打印情况如下:

2 OnEnable

描述:在脚本组件设置为可用时调用一次

作用:需要当一个对象被激活(inspector打勾)时进行一些逻辑处理,可以写在本函数中

3. Start

特点:运行受到脚本组件是否勾选影响。

描述:在OnEnable之后调用,但在整个游戏过程中,只会执行一次;

它是在对象进行帧更新之前才会被执行

Awake、Start均在游戏开始时运行一次

-----Awake、OnEnable、Start运行顺序

多个脚本时的执行顺序,可以设置

    Edit —> Project Settings —>Script Exception Order

二、持续执行的函数

1. FixedUpdate

描述:每个一定的时间间隔执行一次(可以设置),默认是0.02秒

用于进行物理相关的更新,如碰撞检测

设置间隔方法:

  Edit---Project Settings----Time---Fixed Timestep

2. Update

描述:每帧直行一次

作用:用于处理游戏核心逻辑更新

问题:Update和FixedUpdate哪个执行的次数多

---实现小功能

方块向x轴正方向移动,每帧移动0.02米

    void Update(){//Debug.Log("Update运行了");transform.position += new Vector3(0.01f, 0, 0);}

3. LateUpdate

作用:摄像机位置更新相关内容

    /// <summary>/// 每帧执行一次(适用于一个物体执行后跟随)/// </summary>private void LateUpdate(){Debug.Log("LateUpdate");}

4. OnGUI

作用:用于渲染旧版UI,每帧大约执行两次

三、收尾

1. OnDisable

描述:依附的GameObject对象每次失活时被调用(对象被销毁时也会被调用)

作用:需要当一个对象失活时 进行一些逻辑处理,就可以写在本函数中

2. OnDestroy

作用:对象被销毁时被调用(依附的GameObject对象被删除时),当删除的时候调用,销毁前也会执行一次OnDisable

生命周期函数介绍

我们需要利用Unity的生命周期的规则来执行游戏逻辑

所有继承MonoBehavior的脚本 最终都会挂载到GameObject游戏对象上
生命周期函数就是该脚本对象依附的GameObject对象从出生到消亡整个生命周期中
会通过反射自动调用的一些特殊函数

十天学习Unity3D脚本(一)九个回调相关推荐

  1. Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结

    时间:2017年12月04日星期一 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  2. 【鸟哥的Linux私房菜】第十二章、学习shell脚本

    第十二章.学习shell脚本 以下皆为实践题,请自行编写出程序 请建立一个脚本,当你执行该脚本的时候,该脚本可以显示:(1)你目前的身份(用 whoami) (2)你目前所在的目录(用pwd) #!/ ...

  3. 【Linux命令】《鸟哥Linux基础》第十二章 学习shell脚本

    第十二章 学习shell脚本 通常利用shell脚本完成服务器的检测工作,不涉及大量运算. 12.1 简单shell脚本介绍 12.2 简单shell脚本练习 12.2.1 简单范例 范例1:永远的开 ...

  4. 制作滚球游戏学习Unity3D

    从创建项目开始 创建一个项目 打开unity,在Projects中可以查看当前的本地项目或者云端项目,点击New project或者右上角的New都可以新建项目. 然后在1处填写创建项目的名称,2处选 ...

  5. 达拉草201771010105《面向对象程序设计(java)》第十周学习总结

    达拉草201771010105<面向对象程序设计(java)>第十周学习总结 实验十  泛型程序设计技术 实验时间 2018-11-1 第一部分:理论知识        泛型:也称参数化类 ...

  6. 【spinning up】2.2 功能超全的强化学习画图脚本

    功能超全的强化学习画图脚本 文章目录 功能超全的强化学习画图脚本 原始画图效果: 加了九大功能: 最终画图效果: 多个子图绘制和图例legend位置调整: 代码链接,有详细注释: 关于强化学习绘图的其 ...

  7. 【Unity3D基础教程】给初学者看的Unity教程(零):如何学习Unity3D

    转自:https://www.cnblogs.com/neverdie/p/How_To_Learn_Unity3D.html(http://www.cnblogs.com/neverdie/) Un ...

  8. 【unity3d】如何学习unity3d

    Unity3D是一个跨平台的游戏引擎,它提供了3d游戏的大部分基础功能实现,比如物理碰撞.3d模型显示.光照等功能,简化了使用者开发游戏的过程,更能够节省非常多的成本,unity3d与别的游戏引擎最大 ...

  9. 学习模拟集成电路的九个阶段

    学习模拟集成电路的九个阶段 电路如同砖瓦,系统如同大厦.芯片设计工程师一定要从系统角度考虑问题,否则就是只见树木,不见森林. 摘自:@电子发烧友官网 一段你刚开始进入这行,对PMOS/NMOS/BJT ...

最新文章

  1. ROS-3 : Catkin工作空间和ROS功能包
  2. java 分号 转义_java – 正则表达式和转义和未转义的分隔符
  3. React引入,运行
  4. 保驾护航金三银四,使用指南
  5. 轻松做性能测试,月入3万的主流测试工具大揭秘
  6. Linux cannot remove 'XXX': Is a directory 解决办法
  7. mysql客户端字符集_设置MySQL客户端连接使用的字符集
  8. CLion中malloc头文件显示未找到
  9. 液相色谱质谱联用市场现状及未来发展趋势
  10. 【课程·研】自然辩证法 | 课堂汇报:工程师的伦理规范
  11. 网络模型(看这一篇就够了)
  12. 自定义Dota2英雄名字来获得更好的小地图体验
  13. 速写中的颈部肌肉怎么表现?详细画法看这里~
  14. Docer学习(一)
  15. 计算机常用单词 pdf,关于计算机的常用词汇.pdf
  16. 自开发数据可视化平台
  17. linux环境下从路径字符串中截取目录和文件名信息
  18. mysql 法语字符比较_法语比较级如何表达?超全整理
  19. 树莓派——win10远程登录以及蓝屏问题(转载)
  20. SQL基础培训13-索引和优化

热门文章

  1. [AcWing]883. 高斯消元解线性方程组(C++实现)高斯消元解线性方程组模板题
  2. 使用sed删除拼音的音调
  3. 沸点网络电视停运之殇
  4. 李明洋HFSS教程---T型波导内场分析和优化
  5. SpringCloud精妙的设计,你还不知道?
  6. SAP ABAP 上传、下载文件到文件服务器
  7. NDK RTMP直播客户端三
  8. 5509A 常用函数
  9. 在Java中标签的使用
  10. 用选择排序法对键盘输入的n个数字升序排序,要求用函数来实现,n的数值也由键盘输入数据来确定。