位置: 编程技术 - 正文

unity3d中脚本生命周期(MonoBehaviour lifecycle)(unity 3d脚本编程)

编辑:rootadmin

推荐整理分享unity3d中脚本生命周期(MonoBehaviour lifecycle)(unity 3d脚本编程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity 脚本 创建 模型,unity脚本编写教程,unity3d4个脚本,unity脚本模板,unity脚本编写教程,unity3d 脚本,unity 3d脚本编程,unity3d脚本参考手册,内容如对您有帮助,希望把文章链接给更多的朋友!

接下来,做出一下讲解:最先执行的方法是Awake,这是生命周期的开始,用于进行激活时的初始化代码,一般可以在这个地方将当前脚本禁用:this.enable=false,如果这样做了,则会直接跳转到OnDisable方法执行一次,然后其它的任何方法,都将不再被执行。

如果当前脚本处于可用状态,则正常的执行顺序是继续向下执行OnEnable,当然我们可以在另外一个脚本中实现这个脚本组件的启动:this.enab=true;

再向下执行,会进行一个判断,如果Start方法还没有被执行,则会被执行一次,如果已经被执行了,则不会再被执行。这是个什么意思呢?我们可以在某个脚本中将组件禁用this.enable=false,再启用时会转到OnEnable处执行,这时继续向下走,发现Start执行过了,将不再被执行。比如说:第一次启用时,将怪物的初始位置定在了(0,0,0)点,然后怪物可能会发生了位置的变换,后来被禁用了,再次启用时,不会让怪物又回到初始的(0,0,0)位置。

继续向后执行,就是Update了,然后是FixUpdate,再然后是LateUpdate,如果后面写了Reset,则会又回到Update,在这4个事件间可以进行循环流动。

再向后执行,就进入了渲染模块(Rendering),非常重要的一个方法就是OnGUI,用于绘制图形界面。当然,如果你使用了NGUI,这个生命周期的事情你就不用考虑了。

unity3d中脚本生命周期(MonoBehaviour lifecycle)(unity 3d脚本编程)

再向后,就是卸载模块(TearDown),这里主要有两个方法OnDisable与OnDestroy。当被禁用(enable=false)时,会执行OnDisable方法,但是这个时候,脚本并不会被销毁,在这个状态下,可以重新回到OnEnable状态(enable=true)。当手动销毁或附属的游戏对象被销毁时,OnDestroy才会被执行,当前脚本的生命周期结束。

特别要强调的是:这里虽然可以使用C#来写代码,但是这个类构造对象的生命周期,与MonoBehaviour的生命周期,是完全不同的。

可以通过如下示例:对脚本进行验证(两个脚本添加到同一个游戏对象上):

脚本1Monster1:

void OnBecameInvisible() { Debug.Log("invisible"); MonsterController mc1 = this.gameObject.GetComponent<MonsterController>(); mc1.enabled = false; } void OnBecameVisible() { Debug.Log("visible"); MonsterController mc1 = this.gameObject.GetComponent<MonsterController>(); mc1.enabled = true; }

脚本2MonsterController:

void Awake() { Debug.Log("awake"); this.enabled = false; } void OnEnable() { Debug.Log("enable"); this.enabled = true; } void Start() { Debug.Log("start"); //this.gameObject.SetActive(false); } void Update() { Debug.Log("update"); } void OnGUI() { Debug.Log("gui"); } void OnDisable() { Debug.Log("disable"); } void OnDestroy() { Debug.Log("destroy"); }

unity飞机大战(2)一些细节问题 对象池补充先说下上一篇对象池的一个问题。用脚本,在一个SpawnPool,添加多个prefab,运行游戏时,只有第一个prefab预加载了规定个数,当用到其他prefab

unity学习之动态显示图片 欢迎来到我们的狗刨网,我们今天主要来复习一下我们学过的知识点。今天一天还是在围绕项目之间的地形,模型,关卡,分配什么的进行讨论,只是

unity3d移动平台性能优化(5):音频优化 这个也是往往会被大部分人忽略的点,因为从性能分析来看,乎音频几乎没有任何消耗。其实是有的,不过确实很小,一般在百分之3的cpu。也就是说如

标签: unity 3d脚本编程

本文链接地址:https://www.jiuchutong.com/biancheng/380173.html 转载请保留说明!

上一篇:Unity3D中Enabled、Destroy与Active的区别

下一篇:unity飞机大战(2)一些细节问题(unity飞机大战游戏毕业论文)

  • 企业向银行贷款属于融资吗
  • 装修及室内设计实训报告
  • 负数怎么在excel里输入
  • 2021年9月个税申报截止时间
  • 增值税征税范围中销售应税服务包括什么服务
  • 一般纳税人可以开1%的发票吗
  • 不动产销售额怎么填
  • 售后维修的配件有哪些
  • 过桥费是多少
  • 备用金为什么会变少
  • 免税店含增值税吗
  • 广告费和业务宣传费15%还是30%
  • 资金成本加价收入能作为收入开票吗
  • 长期股权投资的交易费用计入哪里
  • 哪些会计科目借方记增加
  • 业务招待费可以开专票吗
  • 先征后返的所得税账务处理
  • 营业费用率说明什么
  • 员工成本是员工薪资的多少倍
  • 不是公司车可以报销油费吗
  • 非独立核算的公司怎么报税
  • 账务不符怎么写
  • 年薪制12个月的计算公式
  • 资产减值损失期末余额在哪方
  • 上期金额为上年同期报表的本期金额
  • 个人所得税专项扣除子女教育标准
  • 外资企业取得财产的条件
  • PHP:pg_last_error()的用法_PostgreSQL函数
  • 企业所得税的税收筹划
  • php怎么添加背景图片
  • vuea
  • showmount命令安装
  • mongodb 查询条件
  • 逐帧flash动画
  • 设计服务的成本票可以暂估吗
  • 可供出售金融资产是流动资产吗
  • 财务报表年报和汇算清缴的顺序
  • 永续债利息可以扣除嘛
  • 土地出让金的范围是什么
  • 母公司资产包括子公司吗
  • 织梦怎么导入数据库
  • 所得税汇算清缴调整项目
  • sql语句批量更新
  • 原材料的对应账户有哪些
  • 销售商品开票税目
  • 结转本年利润的摘要怎么写
  • 当月开的发票次月预缴税款行得通吗?
  • 关税计入什么科目
  • 公司开办期间购买的工具
  • 进项大于销项的原因
  • 预收账款过多,税务让说明原因
  • 个人取得的劳务报酬需要交增值税吗
  • 研发费用账务处理实例
  • 关于发票丢失的处罚
  • 企业利润怎么算出来的
  • SQL2005、SQL2008允许远程连接的配置说明(附配置图)
  • 从根上保证电脑安全、不中毒的方法
  • windows关机蓝屏是怎么回事
  • Linux系统中修改文件权限
  • securecrt教程
  • ubuntu下的vivado2022怎么打开
  • 果粉必修课 盘点Mac OS X系统发展史
  • linux远程操作常用命令
  • oeloader.exe - oeloader是什么进程 有什么用
  • lsass.exe是什么病毒
  • win7怎么运行itunes
  • 举例讲解水生花卉栽培管理
  • jquery(document).ready
  • Python中http请求方法库汇总
  • 介绍一个简单的实验
  • nodejs lua
  • 置顶是什么意思呢
  • Rotate object with mouse click or touch in Unity3D
  • 仿百度首页html代码静态
  • 广东省税务局官网 国家税务总局
  • 叉车需要手续吗
  • 投资性房地产如何合并抵消
  • 个人所得税工资扣税标准
  • 公益性公墓免交税吗
  • 山西税务12366
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设