位置: 编程技术 - 正文

Unity3D脚本(MonoBehaviour)生命周期分析(Unity3D脚本对预制件无效)

编辑:rootadmin

推荐整理分享Unity3D脚本(MonoBehaviour)生命周期分析(Unity3D脚本对预制件无效),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity游戏脚本教程,Unity3D脚本最先执行的函数,unity脚本模板,Unity3D脚本编程,unity3d4个脚本,Unity3D脚本最先执行的函数,Unity3D脚本对预制件无效,Unity3D脚本编程,内容如对您有帮助,希望把文章链接给更多的朋友!

欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。

场景中有2个物体:A,B

每个物体上绑定2个脚本:A,B初始化log:Object : A , Script : B , Message : AwakeObject : A , Script : B , Message : OnEnableObject : A , Script : A , Message : AwakeObject : A , Script : A , Message : OnEnableObject : B , Script : B , Message : AwakeObject : B , Script : B , Message : OnEnableObject : B , Script : A , Message : AwakeObject : B , Script : A , Message : OnEnableObject : A , Script : B , Message : StartObject : A , Script : A , Message : StartObject : B , Script : B , Message : StartObject : B , Script : A , Message : Start特征:1.每次Awake和OnEnable都是连续执行,最后才执行Start2.物体执行顺序是按照字母升序排列,脚本顺序是按照字母降序排列3.先执行完每个物体上的所有脚本,再执行完下个物体上的所有脚本,以此类推。相当于数据库的先group by obj ascending,group by script decending销毁的log:Object : A , Script : A , Message : OnDisableObject : A , Script : B , Message : OnDisableObject : A , Script : A , Message : OnDestroyObject : A , Script : B , Message : OnDestroyObject : B , Script : A , Message : OnDisableObject : B , Script : B , Message : OnDisableObject : B , Script : A , Message : OnDestroyObject : B , Script : B , Message : OnDestroy特征:执行顺序:1.按照唔拍拖的升序排列(ascending)2.对于每个物体上的脚本按照升序排列(ascending),这点是和初始化最大的不同点。3.先执行完一个物体上的所有脚本的disable,再执行该物体上的所有脚本的destroy,然后轮到下一个物体。掌握脚本生命周期直接决定脚本之间的调用顺序,否则很可能出现NPE(null pointer exception)在android 出现NPE还好,一旦iOS出现NPE,就会出现BAD_ACCESS,程序就挂掉了,这点Mono框架做的不是很出色。附:Unity3D脚本(MonoBehaviour)生命周期分析(Unity3D脚本对预制件无效)

AbstractMonoBehaviour.cs

using UnityEngine;using System.Text;public abstract class AbstractMonoBehaviour : MonoBehaviour { protected abstract bool EnableLog { get;} void Start () { Log("Start");} void Awake() { Log("Awake"); } void OnDestroy() { Log("OnDestroy"); } void OnDisable() { Log("OnDisable"); } void OnEnable() { Log("OnEnable"); } protected void Log(object obj) { if (EnableLog) { StringBuilder sb = new StringBuilder(); sb.Append("Object : ").Append(gameObject.name) .Append(" , Script : ").Append(GetType().Name) .Append(" , Message : ").Append(obj); Debug.Log(sb.ToString()); } } }A.csusing UnityEngine;public class A : AbstractMonoBehaviour{ protected override bool EnableLog { get { return true; } }}B.csusing UnityEngine;public class B : AbstractMonoBehaviour{ protected override bool EnableLog { get { return true; } }}

更多精彩请点击

Unity3D 移动MM failed to find resource file{mmiap.xml}解 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d

Unity3d TweenPosition.Begin()的使用浅析 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d

Unity3D 代理的使用及获取两个碰撞器的碰撞点 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d

标签: Unity3D脚本对预制件无效

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

上一篇:Unity3D 错误nativeVideoFrameCallback的解决方法(unity系统错误)

下一篇:Unity3D 移动MM failed to find resource file{mmiap.xml}解(unity移动方法)

  • 个税计算方法和规定
  • 开了发票不做收入的账务处理
  • 工资算管理费用还是生产成本
  • 运输发票抵扣进项税率
  • 普票冲红原票要退回吗
  • 现金日记账划线更正法
  • 滞留票的处理
  • 企业纳税成本管理方案
  • 企业哪些费用属于重要费用
  • 大米加工厂加工技术培训总结
  • 物业费增值税是什么意思
  • 未达起征点企业怎么处理
  • 怎么查找使用手机的时间
  • 财付通交易手续费多少
  • 销售类小规模没有成本票怎么办
  • 利润表里的营业税金及附加如何计算
  • 个税计提比实际缴纳多怎么办
  • 主营业务收入如何确认
  • 免抵退税申报表主表
  • 修缮房屋的防水工程的账务处理?
  • 客户的佣金怎么处理
  • php排队系统
  • 会议费计入什么二级科目
  • 苹果手机麦克风模式关闭了,怎样才能打开?
  • php常用设计模式(大总结)
  • 微信小程序开发完整项目
  • php function函数的用法
  • ci框架教程
  • vue项目创建流程
  • php递归函数详解
  • php自动载入文件的函数
  • thinkphp环境搭建教程
  • 企业研发费用加计扣除比例
  • 银行同业利率
  • 税收优惠属于政府补助
  • 购买黄金会计分录怎么写
  • 银行账户收费开什么发票
  • 织梦如何使用
  • 织梦系统
  • dedecms标签怎么用
  • 勾稽关系怎么算
  • 商誉需要交税吗
  • PostgreSQL 创建表分区
  • 商业一般纳税人辅导期截止时间
  • 电算化会计档案论文答辩自述稿
  • 哪个命令可以对mysql数据库做完全备份
  • 弃置费用的财务费用计算
  • 销售金银首饰增值税和企业所得税
  • 管理人员工资结构
  • 公司班车运费如何入账的
  • 企业所得税季报是填累计数吗
  • 2018年小规模纳税人
  • 企业产品研发
  • 损益类科目年末未结转怎么处理
  • 定金与订金不同
  • 汇率的差额如何处理
  • 忘记MySQL的root密码该怎么办
  • mysql动态sql语句赋值
  • tcpdump的用法
  • xp怎么删除多余的操作系统
  • 为快捷方式建立快捷方式
  • win8系统忘记电脑开机密码怎么办
  • linux怎么格式化硬盘
  • win7注册表修改锁屏时间
  • linux用什么版本
  • 删除rpm安装包
  • jquery获取document对象
  • xcopy命令怎么用
  • javascriptj
  • python 线程教程
  • js遍历foreach
  • 第五章推动经济高质量发展心得
  • 内蒙古低保信息网
  • 施工企业应缴纳的税金计算
  • 河南省医保卡中心电话
  • 食药监局下午几点上班
  • 江苏省电子税务局社保缴费查询
  • 广东省国家税务总局电子税务局
  • 国家税务总局服务中心
  • 消费税的纳税人是买方还是卖方
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设