位置: 编程技术 - 正文

Unity3D脚本中Start()和Awake()的区别对比分析(unity3d脚本参考手册)

编辑:rootadmin

推荐整理分享Unity3D脚本中Start()和Awake()的区别对比分析(unity3d脚本参考手册),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity editor脚本,unity3d脚本参考手册,unity3d脚本编程,unity脚本start和update,unity3d脚本参考手册,unity脚本start和update,unity3d4个脚本,unity3d4个脚本,内容如对您有帮助,希望把文章链接给更多的朋友!

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

Unity3D脚本中Start()和Awake()的区别对比分析(unity3d脚本参考手册)

Unity3D初学者经常把Awake和Start混淆。简单说明一下,Awake在MonoBehavior创建后就立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled == true的情况下执行。void Awake (){} //初始化函数,在游戏开始时系统自动调用。一般用来创建变量之类的东西。void Start(){}//初始化函数,在所有Awake函数运行完之后(一般是这样,但不一定),在所有Update函数前系统自动条用。一般用来给变量赋&#;。我们通常书写的脚本,并不会定义[ExecuteInEditMode]这个Attribute,所以Awake和Start都只有在Runtime中才会执行例1:public class Test : MonoBehaviour { void Awake () { Debug.Log("Awake"); enabled = false; } void Start () { Debug.Log("Start"); }}以上代码,在Awake中我们调用了enabled = false; 禁止了这个MonoBehavior的update。由于Start, Update, PostUpdate等属于runtime行为的一部分,这段代码将使Start不会被调用到。在游戏过程中,若有另外一组代码有如下调用:Test test = go.GetComponent<Test>();test.enabled = true;这个时候,若该MonoBehavior之前并没有触发过Start函数,将会在这段代码执行后触发。例2:player.csprivate Transform handAnchor = null;void Awake () { handAnchor = transform.Find("hand_anchor"); }// void Start () { handAnchor = transform.Find("hand_anchor"); }void GetWeapon ( GameObject go ) { if ( handAnchor == null ) { Debug.LogError("handAnchor is null"); return; } go.transform.parent = handAnchor;}other.csGameObject go = new GameObject("player");player pl = go.AddComponent<player>(); // Awake invoke right after this!pl.GetWeapon(weaponGO);...以上代码中,我们在player Awake的时候去为handAnchor赋&#;。如果我们将这步操作放在Start里,那么在other.cs中,当执行GetWeapon的时候就会出现handAnchor是null reference.总结:我们尽量将其他Object的reference设置等事情放在Awake处理。然后将这些reference的Object的赋&#;设置放在Start()中来完成。当MonoBehavior有定义[ExecuteInEditMode]时当我们为MonoBehavior定义了[ExecuteInEditMode]后,我们还需要关心Awake和Start在编辑器中的执行状况。当该MonoBehavior在编辑器中被赋于给GameObject的时候,Awake, Start 将被执行。当Play按钮被按下游戏开始以后,Awake, Start 将被执行。当Play按钮停止后,Awake, Start将再次被执行。当在编辑器中打开包含有该MonoBehavior的场景的时候,Awake, Start将被执行。&#;得注意的是,不要用这种方式来设定一些临时变量的存储(private, protected)。因为一旦我们触发Unity3D的代码编译,这些变量所存储的内容将被清为默认&#;。下面再来看看Unity圣典中的解释。Awake()当一个脚本实例被载入时Awake被调用。Awake用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次.Awake在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如 GameObject.FindWithTag 这样的函数搜索它们。每个游戏物体上的Awke以随机的顺序被调用。因此,你应该用Awake来设置脚本间的引用,并用Start来传递信息。Awake总是在Start之前被调用。它不能用来执行协同程序。Start()Start仅在Update函数第一次被调用前调用。Start在behaviour的生命周期中只被调用一次。它和Awake的不同是Start只在脚本实例被启用时调用。你可以按需调整延迟初始化代码。Awake总是在Start之前执行。这允许你协调初始化顺序。

更多精彩请点击

关于unity中的update、Lateupdate和FixedUpdate 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d

Unity3D使物体运动的程序脚本的使用与说明实现详解 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d

Unity3D中Javascript的基本使用与介绍详解 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d

标签: unity3d脚本参考手册

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

上一篇:Unity3D游戏开发最佳实践20技巧(一)(unity3D游戏开发)

下一篇:关于unity中的update、Lateupdate和FixedUpdate(unity udim)

  • 所得税费用的计提
  • 一个人可以在多家公司任职吗
  • 处置固定资产账务处理例题
  • 工商年检股东变更流程
  • 临时售楼处及其装修费用如何列支
  • 销售自己使用过的物品免税吗
  • 申报财产租赁合同印花税是在什么情况下?
  • 技术服务费发票税率是多少
  • 租赁合同印花税双方都要交吗
  • 增值税普通发票税率
  • 一个公司可以有几个公章
  • 自建仓库转让如何计算增值税
  • 仓库间的调拨流程
  • 上年度职工工资总额
  • 上个月开的发票这个月还能用吗
  • 纳税能力体现的内容
  • 地方教育附加可以在企业所得税前扣除吗
  • 进项税额暂不转出情况说明怎么写
  • 华为鸿蒙系统如何关闭hd通话
  • 工商年检填写数据填错了会罚款吗
  • 腾讯手游助手闪屏怎么办
  • mac鼠标移动到角落立刻显示桌面
  • php glob
  • wgcore.dll是什么文件夹
  • 罚款在企业所得税前可以扣除吗
  • 资产负债表左方烈士的资产按什么排列
  • php中session使用
  • 被税怎么办
  • easyui给下拉框赋值
  • 前端页面加载缓慢怎么办
  • 核定征收的企业注销需要缴纳个人所得税吗
  • 会计怎么区别法定维修义务和合同义务
  • 2023年顶会、顶刊SNN相关论文----------持续更新中
  • php str函数
  • 微信红包 python
  • 总公司下的分公司如何做账
  • 中兴网管操作手册
  • yii2框架和fastadmin建商城网站哪个好用
  • 发票收款人与复核人为空
  • mysql的索引是什么
  • 个体工商户能享受4050政策吗
  • 无偿受让股权是利好吗
  • 存货盘亏毁损处理方法
  • 所得税费用本期金额怎么算
  • 国家税务总局公告2011年第25号公告
  • 临时工和正式工工资不一样违法吗
  • 红冲上月发票都附什么附件
  • 财务管理税后利息费用都包含什么
  • 会计手工做账的目的
  • 融资租赁固定资产折旧年限
  • 仓储费用分配率
  • 核定征收方式的小型微利企业可以享受
  • 一般纳税人可抵扣的票证有哪些?
  • 资产负债率比率
  • mysql5.6免安装版配置
  • mysql5.7分区表
  • 微软6月24发布
  • ubuntu系统启动过程
  • windowsxp停止服务的时间
  • kmservice.exe是什么
  • win8.1怎么样?
  • linux系统没有yum
  • mac我的所有文件 删除
  • 淘宝win10和正版的有什么区别
  • 安装完xp系统直接黑屏怎么办
  • win8安全和维护在哪
  • win7玩游戏全屏
  • 怎么用代码设置选项
  • win10未检测到任何网络硬件
  • win10移动版应用商店打不开
  • vb win7
  • linux dev/sr0
  • 批处理程序
  • javascript基础笔记
  • jquery可以实现哪些效果
  • python怎么调用shell脚本
  • mac配置android开发环境
  • python 获取uuid
  • 国税账户密码在哪里能找到
  • 票表比对不通过代码999
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设