位置: 编程技术 - 正文

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

  • 缴纳当月的增值税
  • 股份有限公司董事会决议必须经过
  • 将房产以股权形式出售
  • 小微企业的企业所得税税收优惠政策
  • 金税系统维护费可以全额抵扣吗
  • 生产企业内销和出口
  • 一般购销业务的账务处理
  • 增值税专票逾期抵扣怎么操作
  • 旧的固定资产销售怎么算税
  • 公司厨房用品专用发票怎么处理?
  • 工程款的税是怎么扣除的?
  • 已抵扣专用发票冲红怎么操作
  • 船舶吨税范围
  • 营改增劳务派遣
  • 关联方交易的税怎么算
  • 企业购置房产交什么税
  • 印花税零申报怎么申报不了
  • 筹建期间发生的费用计入什么科目
  • BT模式建设项目怎么处理税收?
  • 研发用的原材料怎么开领料单
  • 一般纳税人进项税会计分录
  • 行程单的金额怎么算
  • 个体户对私账户
  • bios里头没有usb功能怎办
  • 年度汇算清缴的企业所得税会计分录
  • 坏坏狼故事绘本
  • 小规模企业没有成本票怎么办
  • 公司向个人借款利息如何处理
  • 物业公司成本费用
  • php 可变变量
  • 企业股权转让所得可以弥补亏损吗
  • 哪些情况下公司不能辞退员工
  • 人工智能大模型体验报告3.0
  • centos安装软件教程
  • 跨平台 gui
  • 外地工程预缴的个人所得税是什么申报
  • 处置固定资产科目
  • 小规模纳税人要缴纳哪些税
  • java初学者教程
  • mysql内存使用详解
  • 无偿提供建筑服务账务处理
  • 发票遗失要如何补办
  • SqlServer 2005 T-SQL Query 学习笔记(4)
  • 基建拨款在新政府会计制度对应什么科目
  • 购买材料增值税税率
  • 公司账户钱能全取出来吗
  • 会计科目长期待摊费用
  • 外币账户记账方法
  • 非本公司员工的火车票可以报销么
  • 招待费的增值税怎么算
  • 存货账面价值入哪个科目
  • 会计证异地可以考吗
  • 工程上第三方代表啥意思
  • 应付利息属于经营性负债吗
  • ubuntu kylin 14.10下多个mysql 5.7.14安装教程
  • sql获取某个字符的位置
  • ubuntu20 vnc
  • 解析包出现错误无法安装怎么办
  • git checkout撤销
  • ubuntu虚拟机怎么改用户名
  • linux系统怎么添加文件
  • win8系统怎样关机
  • win7 64位旗舰版电脑被唤醒之后显示器依然黑屏怎么办?
  • Unity3D游戏开发(第2版)pdf
  • JavaScript不支持ie
  • shell脚本运行linux命令
  • JAVAscript字符串类型单引号和双引号意一样吗
  • TypeScript Type Innference(类型判断)
  • 生成0-100的随机数,直到生成88为止,停止循环
  • js正则匹配特殊符号
  • jQuery的 $.ajax防止重复提交的两种方法(推荐)
  • Android 自定义view炫酷动画
  • 供电局发票是什么样子的
  • 德州市税务局领导
  • 广告费扣除限额15%和30%
  • 工会经费网上怎么申报
  • 委托代征管理办法最长有效期
  • 增值税报表进项税和销项税都不填可以吗
  • 企业税务登记是什么证件
  • ipo上市要注意什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设