十天学习Unity3D脚本(一)九个回调
目录
一、游戏开始时调用一次的
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脚本(一)九个回调相关推荐
- Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结
时间:2017年12月04日星期一 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...
- 【鸟哥的Linux私房菜】第十二章、学习shell脚本
第十二章.学习shell脚本 以下皆为实践题,请自行编写出程序 请建立一个脚本,当你执行该脚本的时候,该脚本可以显示:(1)你目前的身份(用 whoami) (2)你目前所在的目录(用pwd) #!/ ...
- 【Linux命令】《鸟哥Linux基础》第十二章 学习shell脚本
第十二章 学习shell脚本 通常利用shell脚本完成服务器的检测工作,不涉及大量运算. 12.1 简单shell脚本介绍 12.2 简单shell脚本练习 12.2.1 简单范例 范例1:永远的开 ...
- 制作滚球游戏学习Unity3D
从创建项目开始 创建一个项目 打开unity,在Projects中可以查看当前的本地项目或者云端项目,点击New project或者右上角的New都可以新建项目. 然后在1处填写创建项目的名称,2处选 ...
- 达拉草201771010105《面向对象程序设计(java)》第十周学习总结
达拉草201771010105<面向对象程序设计(java)>第十周学习总结 实验十 泛型程序设计技术 实验时间 2018-11-1 第一部分:理论知识 泛型:也称参数化类 ...
- 【spinning up】2.2 功能超全的强化学习画图脚本
功能超全的强化学习画图脚本 文章目录 功能超全的强化学习画图脚本 原始画图效果: 加了九大功能: 最终画图效果: 多个子图绘制和图例legend位置调整: 代码链接,有详细注释: 关于强化学习绘图的其 ...
- 【Unity3D基础教程】给初学者看的Unity教程(零):如何学习Unity3D
转自:https://www.cnblogs.com/neverdie/p/How_To_Learn_Unity3D.html(http://www.cnblogs.com/neverdie/) Un ...
- 【unity3d】如何学习unity3d
Unity3D是一个跨平台的游戏引擎,它提供了3d游戏的大部分基础功能实现,比如物理碰撞.3d模型显示.光照等功能,简化了使用者开发游戏的过程,更能够节省非常多的成本,unity3d与别的游戏引擎最大 ...
- 学习模拟集成电路的九个阶段
学习模拟集成电路的九个阶段 电路如同砖瓦,系统如同大厦.芯片设计工程师一定要从系统角度考虑问题,否则就是只见树木,不见森林. 摘自:@电子发烧友官网 一段你刚开始进入这行,对PMOS/NMOS/BJT ...
最新文章
- ROS-3 : Catkin工作空间和ROS功能包
- java 分号 转义_java – 正则表达式和转义和未转义的分隔符
- React引入,运行
- 保驾护航金三银四,使用指南
- 轻松做性能测试,月入3万的主流测试工具大揭秘
- Linux cannot remove 'XXX': Is a directory 解决办法
- mysql客户端字符集_设置MySQL客户端连接使用的字符集
- CLion中malloc头文件显示未找到
- 液相色谱质谱联用市场现状及未来发展趋势
- 【课程·研】自然辩证法 | 课堂汇报:工程师的伦理规范
- 网络模型(看这一篇就够了)
- 自定义Dota2英雄名字来获得更好的小地图体验
- 速写中的颈部肌肉怎么表现?详细画法看这里~
- Docer学习(一)
- 计算机常用单词 pdf,关于计算机的常用词汇.pdf
- 自开发数据可视化平台
- linux环境下从路径字符串中截取目录和文件名信息
- mysql 法语字符比较_法语比较级如何表达?超全整理
- 树莓派——win10远程登录以及蓝屏问题(转载)
- SQL基础培训13-索引和优化