位置: 编程技术 - 正文

unity脚本自带函数执行顺序(unity脚本api)

编辑:rootadmin

推荐整理分享unity脚本自带函数执行顺序(unity脚本api),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity脚本函数,unity脚本函数,unity脚本用什么打开,unity常用的800个脚本,unity脚本用什么打开,unity脚本编写教程,unity 脚本,unity 脚本,内容如对您有帮助,希望把文章链接给更多的朋友!

在unity的脚本中,有大量的脚本执行按照预先确定的顺序执行的事件函数,由于篇幅有限,无法一一列举,这里只列举一些常用的自带函数的顺序,并论述他们之间的区别。在Unity脚本中常用到的函数就是下面这些,他们的顺序也是按照箭头的方向执行的。Awake ->OnEable-> Start -> FixedUpdate-> Update -> LateUpdate ->OnGUI ->OnDisable ->OnDestroy秉着实践是检验真理的唯一标准,咱们可以将下面脚本挂在一个物体运行,从打印结果中便可以看到执行顺序

下面是打印结果接下来针对每个方法进行详细的说明

1.Awake

用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次.Awake在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如GameObject.FindWithTag()这样的函数搜索它们。每个游戏物体上的Awake以随机的顺序被调用。因此,你应该用Awake来设置脚本间的引用,并用Start来传递信息Awake总是在Start之前被调用。它不能用来执行协同程序。

2.Start

仅在Update函数第一次被调用前调用。Start在behaviour的生命周期中只被调用一次。它和Awake的不同是Start只在脚本实例被启用时调用。你可以按需调整延迟初始化代码。Awake总是在Start之前执行。这允许你协调初始化顺序。在所有脚本实例中,Start函数总是在Awake函数之后调用。

3.FixedUpdate

固定帧更新,在Unity导航菜单栏中,点击“Edit”-->“Project Setting”-->“Time”菜单项后,右侧的Inspector视图将弹出时间管理器,其中“Fixed Timestep”选项用于设置FixedUpdate()的更新频率,更新频率默认为0.s。

4.Update

正常帧更新,用于更新逻辑。每一帧都执行,处理Rigidbody时,需要用FixedUpdate代替Update。例如:给刚体加一个作用力时,你必须应用作用力在FixedUpdate里的固定帧,而不是Update中的帧。(两者帧长不同)FixedUpdate,每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。

Update()与FixedUpdate()的区别

从字面上理解,它们都是在更新时会被调用,并且会循环的调用。但是Update会在每次渲 染新的一帧时,被调用。而FixedUpdate会在每个固定的时间间隔被调用,那么要是Update 和FixedUpdate的时间间隔一样,是不是就一样呢?答案是不一定,因为Update受当前渲染的物体,更确切的说是三角形的数量影响,有时快有时 慢,帧率会变化,update被调用的时间间隔就发生变化。但是FixedUpdate则不受帧率的变化,它是以固定的时间间隔来被调用,那么这个时间间 隔怎么设置呢?Edit->Project Setting->time下面的Fixed timestep。

unity脚本自带函数执行顺序(unity脚本api)

5.LateUpdate

在所有Update函数调用后被调用,和fixedupdate一样都是每一帧都被调用执行,这可用于调整脚本执行顺序。例如:当物体在Update里移动时,跟随物体的相机可以在LateUpdate里实现。LateUpdate,在每帧Update执行完毕调用,他是在所有update结束后才调用,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。

Update和LateUpdate的区别

在圣典里LateUpdate被解释成一句话,LateUpdate是在所有Update函数调用后被调用。这可用于调整脚本执行顺序。例如:当物体在Update里移动时,跟随物体的相机可以在LateUpdate里实现。

LateUpdate是晚于所有Update执行的。例如:游戏中有2个脚本,脚本1含有Update和LateUpdate,脚本2含有Update,那么当游戏执行时,每一帧都是把2个脚本中的Update执行完后才执行LateUpdate 。虽然是在同一帧中执行的,但是Update会先执行,LateUpdate会晚执行。

现在假设有2个不同的脚本同时在Update中控制一个物体,那么当其中一个脚本改变物体方位、旋转或者其他参数时,另一个脚步也在改变这些东西,那么这个物体的方位、旋转就会出现一定的反复。如果还有个物体在Update中跟随这个物体移动、旋转的话,那跟随的物体就会出现抖动。 如果是在LateUpdate中跟随的话就会只跟随所有Update执行完后的最后位置、旋转,这样就防止了抖动。

6.OnGUI

在渲染和处理GUI事件时调用。比如:你画一个button或label时常常用到它。这意味着OnGUI也是每帧执行一次。

7.Reset

在用户点击检视面板的Reset按钮或者首次添加该组件时被调用。此函数只在编辑模式下被调用。Reset最常用于在检视面板中给定一个默认&#;。

8.OnDisable

当物体被销毁时 OnDisable将被调用,并且可用于任意清理代码。脚本被卸载时,OnDisable将被调用,OnEnable在脚本被载入后调用。注意: OnDisable不能用于协同程序。

9.OnDestroy

当MonoBehaviour将被销毁时,这个函数被调用。OnDestroy只会在预先已经被激活的游戏物体上被调用。注意:OnDestroy也不能用于协同程序。

[置顶] (二)Unity5.0新特性------unity内部:内存 和 性能(以及Unity5的升级优化) 我们的脚本代码里经常会需要访问gameObject引用或者某个组件的引用,最好的方式当然是在脚本Awake的时候就把这些可能访问的东西都缓存下来;如果需

Unity 实现模拟按键 一直在想,使用模拟按键,也可以实现一些AI操作,具体还没做过,这里使用user.dll在unity里写的一个简单demousingUnityEngine;usingSystem.Collections;usingSystem.Run

Dll的编写 在unity中加载 1.在VS中新建Dll项目2.在头文件中对函数进行声明externCint_declspec(dllexport)testunity();3.在源文件中写函数体inttestunity(){return;}4.生成后成功后,在Debug文件中

标签: unity脚本api

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

上一篇:Ubuntu桌面快捷键切换窗口技巧(ubuntu快捷键大全)

下一篇:[置顶] (二)Unity5.0新特性------unity内部:内存 和 性能(以及Unity5的升级优化)(置顶怎么折叠起来)

  • 税务局代开发票还要纳税吗
  • 自动售货机进货渠道
  • 行政法律法规是规定行政机关
  • 收到货款没开票做应收还还应付
  • 公司法人必须办社保吗?
  • 商誉在资产负债表中如何体现
  • 付代销手续费会计分录
  • 个人所得税累计收入
  • 技术咨询服务开什么发票
  • 申报从租计征的房产税必须提前备案吗
  • 电子发票冲红是怎么回事
  • 装订需要多长时间
  • 增值税普通发票有什么用
  • 小规模纳税人的增值税账务处理
  • 税费和应交税费一样吗
  • 房地产企业增值税税率
  • 固定资产后续支出资本化和费用化
  • 承兑汇票怎么委托收款
  • 用于在建工程的贷款利息
  • 装修未付款的会计分录
  • 个税税费返还
  • 利息收入汇算清缴
  • 销售货物的运输费用计入成本吗知乎
  • 冲红发票还能二次冲红吗
  • 小规模纳税人减征额怎么计算
  • 预缴时少缴税款是否需要缴纳滞纳金?
  • 加速折旧法主要包括哪些内容
  • 我的初级备考经验怎么写
  • 住房公积金是否全国联网
  • 应付职工薪酬借方负数是什么意思
  • 外贸公司有出口退税吗
  • windows7中右键的作用
  • 固定资产丢失进项税需要转出吗
  • win11怎么用win10界面
  • 修改hosts文件的软件
  • 代开的增值税怎么计提?
  • 承租厂房需要缴纳什么税
  • csrsv.exe是什么
  • CI(Codeigniter)的Setting增强配置类实例
  • 进料加工免退税
  • 深度学习第一步——Pytorch-Gpu环境配置:Win11/Win10+Cuda10.2+cuDNN8.5.0+Pytorch1.8.0(步步巨细,少走十年弯路)
  • 企业所得税计提会计分录怎么做
  • Yii1.1中通过Sql查询进行的分页操作方法
  • ifconfig命令配置地址
  • php curlfile
  • 税控维护费可以抵企业所得税吗
  • 用友固定资产模块反结账
  • 红字信息表必须要原件吗
  • 银行账户管理的直接责任人是共享中心核算会计
  • 无效发票进项税额抵扣
  • 汽车维修费可以做差旅费吗
  • 短期借款的核算会计分录
  • 一般纳税人购买固定资产进项税可以抵扣吗
  • 现金日记账里
  • 出口转内销怎么做
  • 在建工程发生的运费计入什么科目
  • 党委经费是国家政府出吗?
  • 物业公司收的水费怎么做账
  • 有收入有支出怎么求和
  • 分享一下相亲时碰见过哪些奇葩事
  • centos rpc
  • mysql转移表数据表
  • 值得收藏的一元硬币
  • gnaupdaemon.exe是什么
  • win8搜索不到自己家的WiFi
  • win7系统玩游戏怎么样
  • 启用win8 metro启动界面
  • js类的实现
  • Ext JS 4实现带week(星期)的日期选择控件(实战一)
  • cocos2dx开发的游戏有哪些
  • ecmascript5
  • jquery写入json文件
  • jquery自定义组件
  • 你需要知道的100位艺术大师
  • js获取上传文件的大小
  • python 解析算法
  • unity toggle切换状态
  • jquery 获取父元素的子元素
  • 开增值税发票没有销售合同也要交印花税吗
  • 2023年企业所得税计算公式表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设