位置: 编程技术 - 正文

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)

  • 所得税费用本期金额怎么算
  • 非商业性旅游服务
  • 小规模纳税人通用申报表
  • 暂估入账纳税调整填哪里
  • 注会与税务师有什么区别
  • 餐饮行业的成本率在多少才正常
  • 投资性房地产公允价值模式出售
  • 财产租赁合同印花税计税依据含税吗
  • 保税仓发货的商品,每个人的年度消费限额是
  • 小规模纳税人预缴税款怎么填申报表
  • 财务费用利息收入结转本年利润
  • 申报增值税无附表怎么填写
  • 外币购销业务的账务处理
  • 营业费用率说明什么
  • 可供分配利润包括所得税吗
  • 免税销售额是否计入成本
  • 固定资产折旧属于制造费用吗
  • 给不是本单位的人开证明
  • 总公司委托分公司工程委托书模板
  • 管理会计的目标包括多选题
  • 国税的应交税款在地税的财务报表上怎么填?
  • 企业允许加计扣除的研发费用主要包括哪些?
  • 发票升额需要什么条件
  • 2021通行费抵扣税率
  • 现金存入对公账户用途写什么
  • 总资产报酬率
  • 支付宝手续费怎么关闭
  • 分包利润是多少
  • 药品入库和出库必须执行什么制度
  • 社保扣款是根据每个月实发工资么
  • 经营费用包括哪些科目明细
  • gh树形数据是什么意思
  • 不动产投资包括哪些
  • 关闭自动更新应用程序
  • php正则表达式验证url
  • mac如何修改
  • 自创商誉的确认
  • 手把手教你暴力破解wifi密码
  • codeigniter 教程
  • 阿伦河在哪
  • 增值税加计抵减企业所得税如何处理
  • 微信小程序计算器代码
  • php写json
  • 如何提升人工劳动效率
  • 只有进项发票,没有销项可以吗
  • 新会计准则分录大全
  • 个体工商户开票是企业还是个人
  • 银行存款利息的会计科目
  • 领取材料的分录
  • 厂房办公用品费用怎么算
  • 食堂买菜是什么费用
  • 企业需要购买两种保险吗
  • 进项税大于销项税怎么结转
  • 递延所得税资产是什么意思
  • 固定资产评估收费标准
  • 一般贸易出口报关的详细流程案例
  • 小微企业流转税优惠政策
  • 企业合并中或有对价的会计处理
  • 实收资本有关会计科目
  • 应付账款与应付票据结合的原则
  • 五金配件生意好做吗
  • 防伪税控服务费全额抵扣政策
  • 外贸企业怎么开出口发票
  • 公司计提减值好吗
  • 发票丢失了怎么报销
  • mysql 5.7.18 zip版安装配置方法图文教程(win7)
  • CentOS 7.0.1406 正式版发布(附CentOS7下载地址)
  • etcfstab文件修改
  • ubuntu 04 10
  • linux系统崩溃了怎么办
  • win8怎么看windows
  • 详解16型人格
  • shell脚本编写的基本知识
  • 安卓的引导式访问叫什么
  • 利用python做一个文字小游戏
  • python web ui
  • python中jsonpath
  • 国家税务总局使用
  • 城市基础设施配套费由哪个部门收取
  • 会计基础工作规范2024
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设