关于Unity单个对象多个脚本的Update调用的时序问题
先说几句废话,
最近在研究Unity,
这玩意用起来比较简单,
而且商店里还有各种插件,
初学者也能轻松拼凑出一个像模像样的游戏(顺便说一句,自己做着玩就无所谓了,但随便拼凑个辣鸡丢出来骗钱就不好了),
是一个不错的游戏开发工具,
不过知不道是不是开发商已经很久没有自己用Unity开发一个完整的游戏了,
这玩意很多细节做得都比较蛋疼,
而又因为是闭源的,
很多本来花不到一分钟时间改一下源码就能解决的问题现在也只能先用蛋疼的方式解决了,
之后计划在此记录下研究过程中发现的各种蛋疼的问题以及个人认为蛋疼程度最低的解决办法,
希望能给此时也正在研究Unity的同学一些帮助。
言归正传,
最近在研究Unity的刷新流程,
官方文档明确指出了不同对象的Update函数调用的顺序是不确定的,
这个没什么问题,不同对象的Update本来也不应该有直接的依赖关系,
但是在相同对象中挂上去的脚本貌似没有找到文档说明调用顺序是怎样的(如果哪位同学找到了麻烦告诉我一下),
然后写了一段代码实验了一下,
发现调用顺序跟脚本挂上去的顺序有关,
跟在面板上的顺序无关,
然后又在论坛上发现有人说这个顺序也是不固定的,
有可能你游戏丢出去给别人玩的时候突然就出问题了,
额,好吧,
不过即使是按这个顺序来执行的,
个人建议也不要依赖这个顺序,
如果哪天新加了个脚本跟之前已经挂上去的脚本有时序上的依赖,
就得把把脚本全部删掉重新再加一次,想想就蛋疼,
由于没有源码,不知道官方出于什么目的要干这种反人类的事情,
个人觉得按脚本在面板上的顺序调用比较符合人类的直觉,
也不存在什么开发难度,几行代码就搞定了,
不过既然现在引擎已经做成这样了,
暂时能想到的一个不那么蛋疼的解决办法是写一个刷新管理类,
在Start的时候把该对象其他需要Update的脚本拿出来,
然后在Update的时候按逻辑顺序调用这些脚本的Upate函数就好了,
当然,这些脚本的Update函数得改个名字,例如ManualUpdate啥的
关于Unity单个对象多个脚本的Update调用的时序问题的更多相关文章
- Unity3D热更新之LuaFramework篇[07]--怎么让unity对象绑定Lua脚本
前言 在上一篇文章 Unity3D热更新之LuaFramework篇[06]--Lua中是怎么实现脚本生命周期的 中,我分析了由LuaBehaviour来实现lua脚本生命周期的方法. 但在实际使用中 ...
- Unity学习疑问记录之脚本生命周期
总的来说unity的脚本生命周期分几个部分:编辑→初始化→游戏逻辑→渲染→GUI→Teardown首先是Reset,顾名思义:重置.在什么情况下调用呢?1.用户第一次添加组件时.2用户点击见组件面板上 ...
- 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 在脚本中使用MonoBehaviour
继上次分析了热更新的Demo后,这次来介绍如何在热更新代码中使用MonoBehaviour. MonoBehaviour挂载到GameObject对象上的脚本的基类.平常Unity开发时,简单的做法就 ...
- C#开发Unity游戏教程之使用脚本变量
C#开发Unity游戏教程之使用脚本变量 使用脚本变量 本章前面说了那么多关于变量的知识,那么在脚本中要如何编写关于变量的代码,有规章可循吗?答案是有的.本节会依次讲解变量的声明.初始化.赋值和运算. ...
- Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合
今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...
- Objective-C 【单个对象内存管理(野指针&内存泄露)】
------------------------------------------- 单个对象内存管理 (1)野指针 ①定义了一个指针变量,但是并没有赋初值,它随机指向一个东西 ②某指针变量指向的内 ...
- Unity NGUI 网络斗地主 -发牌 脚本交互
Unity NGUI 网络斗地主 -发牌 脚本交互 @By 灰太龙 Unity4.2.1f4 NGUI 3.0.4 本篇说的问题是脚本与控件的交互! 现在对界面进行了改进,先看副图! 1.制作发牌效果 ...
- QT自定义对象导入JavaScript脚本使用
1.对象 项目属性要添加 QT += script自定义的对象头文件如下,实现正常就好,记得脚本里要调用的方法一定要定义在public slots:下,要不然调用时提示该对象没有*方法 #ifnd ...
- mybatis 查询单个对象,结果集类型一定要明确
简单介绍:用ssm框架已经有很长时间了,但是似乎从来都没有对于查询单个对象,存在问题的,好像也就是那回事,写完sql就查出来了,也从来都没有认真的想过,为什么会这样,为什么要设置结果集类型 代码: / ...
随机推荐
- (转)hibernate 之hiberante.hbm2ddl.auto 参数的配置
我们在搭建环境的时候,在配置文件中有一个属性标签为: 完整配置如下 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernat ...
- git教程:管理修改
转载:管理修改 现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行 ...
- Api文件
对于我们不认识的类(只限于java自带的类),我们可以百度去查一下,但是这样是嚼别人吃剩下的骨头,我们可以去查java的api文件,虽然都是英语,但是还是硬着头皮看吧,加油! 链接:https://p ...
- 田螺便利店—opencv3.4.5与vs2015配置并测试
参考博客:https://blog.csdn.net/sinat_39061823/article/details/80723096 遇到的问题:由于找不到 opencv_world345d.dll, ...
- 影响Arcmap运行效率的因素
在使用ArcMap的过程中,总觉得ArcMap运行起来非常慢,目前发现了两点原因: 一.渲染太多图斑 比较常见的,我们在打开矢量图层时,Arcmap会自动渲染加载进去的图斑,进行符号化.在渲染的过程中 ...
- freemarker demo
<!--freemarker--> <dependency> <groupId>org.springframework.boot</groupId> & ...
- 一个权重的物体拷贝权重给多个(oneWeightToMany)
你是否在做项目的时候经常会遇见一个物体带权重需要拷贝给其他物体,这时候其他物体多的数不胜数 你怎么办呢? 举例:假如一头狮子 身体你已经做好了,但是模型师把半个身体都做满了垂落的实体模型毛发,你是否感 ...
- Python 配置 selenium 模拟浏览器环境,带下载链接
使用浏览器渲染引擎.直接用浏览器在显示网页时解析HTML,应用CSS样式并执行JavaScript的语句. 这方法在爬虫过程中会打开一个浏览器,加载该网页,自动操作浏览器浏览各个网页,顺便把数据抓下来 ...
- java设计模式概述
java的设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式. 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模 ...
- VMware Workstation Pro 安装win7系统
1.准备工作VMware Workstation Pro 虚拟机软件cn_windows_7_enterprise_x64_dvd_x15-70741.iso2.选择典型(推荐)(T) 单选按钮 3. ...