位置: 编程技术 - 正文

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移动方法)

  • 党建经费的标准
  • 发票金额太大怎么拆分数量,单价不变还是数量不变
  • 企业级软件开发
  • 工厂开不了发票
  • 小企业会计制度及核算办法
  • 居民企业参股外国企业信息报告表怎么删除
  • 甲公司自2018年3月1日开始自行研发一款新兴产品
  • 外资企业采购流程
  • 房地产企业拆迁补偿契税政策
  • 餐饮店投资入股注意事项
  • 银行手续费跨月怎么计算
  • 正在注销的公司微信收的款怎么追回
  • 开具红字专票的步骤
  • 房地产开发企业取得的土地使用权用于建造
  • 备查账簿根据企业的实际需要设置没有固定的格式要求
  • 固定资产入账会计
  • 固定资产 出售
  • 知识产权?
  • 笔记本电脑怎么重装系统
  • 苹果客服人工24小时
  • 公司多缴税款了怎么办?可以退吗?
  • vue 拖拽到目标区域
  • 外购货物应抵扣的进项税额
  • laravel获取请求参数
  • PHP:imagefontheight()的用法_GD库图像处理函数
  • 个人所得税部分缴纳
  • 何为前端后端
  • Thinkphp和onethink实现微信支付插件
  • echarts简介
  • php连接数据库的基本步骤是什么
  • 国内旅客运输服务普票可以抵扣吗
  • 商品仓储费用会增加吗
  • php execute函数
  • 直接进入税金及附加的科目
  • 股权收购账务处理
  • redis incr 高并发
  • 在建工程发生的非正常损失计入哪
  • 建筑业的账务处理方法
  • 租入商铺
  • 进项税额申报表怎么填写
  • 非正常户管理办法
  • 总承包可以转包吗
  • 筹建养老院国家有哪些优惠政策?
  • 绩效是否需要交税
  • 个税的缴纳期数是什么
  • 可供出售金融资产属于什么科目
  • 疫情期间社保减免了几个月
  • 固定资产计提折旧的原则
  • 用货款抵扣供应商成本
  • 会计凭证的填制与审核实训总结
  • 公司广告制作费用申请报告
  • 利息保障倍数为0说明什么
  • 销售配件模式
  • 员工用自己的钱买的材料如何做账
  • 可供分配利润的计算公式
  • 融资租赁本金和租金的区别
  • 待摊费用在新会计准则里面有吗
  • mysql5.7.17下载
  • win10怎么预览文件
  • win7cpu虚拟化怎么看
  • win10装360安全卫士
  • unix & linux
  • wire软件下载
  • 做网页需要域名吗
  • c# opengl 3d
  • android自定义view ondraw有时候不执行
  • 获取本站的context root
  • xcopy 批处理
  • python shape用法
  • jquery 入门
  • 基于vue的app
  • js禁用页面所以输入框
  • python3中raw_input的用法
  • 四川国税发票查询验证
  • 陕西省地方税务局公告2017年第2号
  • 在企业内部具有行使否决权的是
  • 税务部门的扣款协议
  • 如何查询企业是小规模还是一般
  • 医保参保应保尽保
  • 契税个税怎么说
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设