位置: 编程技术 - 正文

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

发布时间:2024-02-27

推荐整理分享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飞机大战游戏毕业论文)

  • 怎么结转未交增值税
  • 关税纳税申报时间
  • 税控盘扣税缴税分录怎么写
  • 新准则经营租赁会计分录
  • 商业汇票到期没有收到款
  • 申报个人所得税是按应发工资还是实发工资
  • 企业注销盈利一定要交个税吗
  • 短期借款属于经营性资产吗
  • 做实验用的东西哪里可以买到
  • 建筑公司设计费税率
  • 取得虚开发票所得税分录如何处理?
  • 房租发票上税的分录怎么写?
  • 免抵退税的账务处理
  • 增值税普通发票可以抵扣进项税吗
  • 营改增后还有企业所得税吗?
  • 开具旧税号也能认证成功
  • 税务行业软件
  • 清包工和甲供工区别在哪
  • 非营利组织报销做账怎么做
  • 外币报表折算差额怎么算
  • 增值税暂行条例属于
  • 库存商品发生损失
  • 增值税发票和收据的区别
  • 残疾人就业保障金申报时间
  • 多结转成本会导致什么
  • 银行承兑汇票付款提示期限
  • windows11 微软
  • w10关闭远程
  • 修改组策略后需要重启吗
  • node.js和npm
  • 汇兑损益和财务费用区别
  • windows7使用方法
  • 企业发给员工的食堂补贴需要交个税吗
  • 福利部门领用原材料进项税额可以抵扣吗
  • 建筑工程增值税怎么算
  • php生成csv文件
  • php提交post数据
  • php 进程通信
  • 微信收款要求绑定银行卡怎么办
  • 油卡预付卡发票能入费用吗怎么入账
  • 后端三件套
  • vue3.0中的ref
  • 个税专项附加扣除具体怎么操作
  • day28--Java泛型01
  • 贴现业务受理该怎么做
  • 改签机票要收费
  • 财政补助收入的账务处理
  • 国库券利息收入属于企业所得税纳税调整项目
  • 外贸企业退税怎么申报
  • 增值税月末结转处理
  • 加工费怎么做账
  • 固定资产正常报废与非正常报废的会计处理基本相同
  • 加计减免其他收入怎么填
  • 无形资产出售时累计摊销为什么在借方
  • 支付宝收入什么意思
  • 收到补助款的会计分录
  • 购买金税盘的分录
  • 跨月普票作废怎么处理操作步骤
  • 工会费上缴
  • 安装sqlserver2000 IP地址出错怎样修改
  • mysql的日志
  • oracle的账户
  • 全民用车app下载
  • ubuntu包管理命令
  • centos用户添加到组
  • linux运维常用命令汇总
  • linux系统监控软件
  • Windows7忘记开机密码一键还原
  • linux config
  • win8.1使用技巧大全
  • 安装双系统之后win10进不去
  • 微信怎么导入主题模块
  • 批处理应用实例
  • JavaScript中Number.MIN_VALUE属性的使用示例
  • 封装是借助什么达到的
  • 苗木税收政策
  • 电子税务局网上登录
  • 泗洪临淮公交车运行时间表
  • 02112366电子税务局
  • 文件印发的格式怎么设置
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号