位置: 编程技术 - 正文

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

  • 上月多计提增值税
  • 城市配套费的用途
  • 偷税漏税逃税是什么意思
  • 开具电费发票如何入账?
  • 财务软件续费怎么记账
  • 小企业会计制度及核算办法
  • 2021年成本类科目
  • 环保罚款计入什么会计科目
  • 转租收入怎样缴税
  • 分公司借款给总公司
  • 收到外国的货款会计分录
  • 合并报表编织原则
  • 退货冲减收入
  • 股票投资收益需要缴纳增值税吗
  • 有2处收入要交个税,自己如何去交个税
  • 金税盘抵减税额怎么算
  • 企业所得税核定征收最新政策
  • 会计利润和税务利润的暂时性差异和永久性差异
  • 管理费用职工福利费
  • 鸿蒙系统怎么升级3.0
  • vue获取当前页面请求头信息
  • 员工因违反公司规章制度被辞退有补偿吗
  • 广告费和业务宣传费
  • 约定抵销与法定抵销的区别
  • iphone6splus 充电
  • 收到银行承兑汇票的账务处理
  • 若依框架前后端分离手机号登录
  • laravel技巧
  • php验证源码
  • 当月进项税额转出当月申报吗
  • Vue3通透教程【十四】TS复杂类型详解(一)
  • php写一个函数,对手机号做基础的判断和处理
  • 外出培训餐费要进差旅费吗
  • php和mysql关系
  • 手把手怎么写
  • react usereducer
  • 羊羊 过好
  • 勘察设计费是否含税
  • mysql默认存储引擎的命令
  • python 规划求解
  • 其他收入工会经费是什么意思
  • 应交税费的分析应重点关注企业
  • 土地利息可以作为土增扣除吗
  • mysql错误代码1067
  • 小规模纳税人免税政策2023年
  • 土地增值税要计入税金及附加吗
  • 影响债券投资收益率的因素有
  • 留存收益转增资本公积
  • 委托代销确认销售收入
  • 分公司往子公司投资如何做税务处理?
  • 研发样品是什么费用
  • 先开票后发货的会计分录
  • 建筑企业材料费能否加计扣除
  • sql如何对两个表数据求和
  • win8不识别u盘
  • solaris 查看进程
  • 操作系统运行慢怎么解决
  • mac系统怎么清理Adobe残留
  • linux中使用grep命令显示包含特殊字符的行
  • win7系统打开软件慢的原因
  • 给推荐几款
  • win7系统玩英雄联盟没有声音
  • win1020h2版本千万别更新
  • Win10输入法切换快捷键改不了
  • vim中执行shell命令
  • win7系统误删文件可以恢复吗
  • win8修改锁屏壁纸
  • cpio压缩
  • win7旗舰版远程链接登录不上
  • linux中病毒了怎么处理
  • 向量上面有个倒着的v
  • node.js环境搭建
  • css网页布局中注释是什么
  • linux shell执行命令
  • android studio ndk开发教程
  • JavaScript的Number对象的toString()方法
  • python的介绍
  • 税务申报规则
  • 苏州市区公司可以在园区买社保吗
  • 银行宣传岗位职责怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设