Unity-Animator深入系列---StateMachineBehaviour初始化时间测试
结果和想的有点出入
测试结果:
1.SMB初始化会被调用多次,次数不可控,当Animator组件重复开关则重复初始化。
2.SMB支持构造函数
MyClass
public class MyClass
{
public MyClass()
{
Debug.Log("Init!");
}
}
TestSMB
public class TestSMB : StateMachineBehaviour
{
public MyClass obj = new MyClass(); public override void OnStateMachineEnter(Animator animator, int stateMachinePathHash)
{
base.OnStateMachineEnter(animator, stateMachinePathHash); Debug.Log("OnStateMachineEnter");
}
}
MyClass放在TestSMB上初始化,通过log判断初始化了几次
Editor下测试:

build到pc版测试:

很显然,初始化次数不可控!并且和Editor没关系,Unity内部每次初始化Animator就会被触发。但后续的状态跳转则不会再触发。除非Animator组件重新被关掉,再次初始化。
和MonoBehaviour的初始化顺序关系,测试结果是在Awake之前:

另外测一下是否可以使用构造函数,结果是可以,没有警告:

Unity-Animator深入系列---StateMachineBehaviour初始化时间测试的更多相关文章
- Unity-Animator深入系列---StateMachineBehaviour状态机脚本学习
回到 Animator深入系列总目录 首先这个脚本必须继承自StateMachineBehaviour public class MySMB : StateMachineBehaviour { pub ...
- 【转】Unity Animator卡顿研究
Unity Animator卡顿研究 发表于2017-07-26 点赞3 评论3 分享 分享到 2.3k浏览 想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群 ...
- 为什么要问Servlet的初始化时间
Servlet的init方法到底是在什么时候调用的? j2ee specification和java doc中有以下说明 如果load-on-startup设置为>=0, 部署的时候就会调用. ...
- 基于iSCSI的SQL Server 2012群集测试(二)--SQL群集安装后初始化配置测试
4.群集安装后初始化配置测试 4.1 禁用full-text 服务和Browser服务 Full-text服务:公司目前暂不使用,需在两个节点上分别禁用 Browser服务:为保证安全,建议将Brow ...
- C++vptr初始化时间
给出如下代码段: #include <iostream> #include "stdio.h" using namespace std; class A { publi ...
- Java 中静态代码块初始化问题测试
Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...
- 用于.NET环境的时间测试(转)
用于.NET环境的时间测试 在.NET环境中,衡量运行完整算法所花费的时间长度,需要考虑很多 需要考虑很多种情况 ,如:程序运行所处的线程以及无用单位收集(GC垃圾回收). 在程序执行过程中无用单 ...
- 【转】unity Animator 怎么判断一个动画播放结束
关于unity Animator 怎么判断一个动画播放结束这里有几种方法.希望对大家有帮助.还有其他办法的可以分享一下 第一种方法:在动画结束帧后面加个动画事件,调用下含这个变量的函数接口不是可以了? ...
- openresty开发系列20--lua的时间操作
openresty开发系列20--lua的时间操作 在 Lua 中,函数 time.date 和 difftime 提供了所有的日期和时间功能.在 OpenResty 的世界里,不推荐使用这里的标准时 ...
随机推荐
- 1.Spring Web MVC有什么
Spring Web MVC使用了MVC架构模式的思想,将web层进行职责解耦. 同样也是基于请求驱动的,也就是使用请求-响应模型.它主要包含如下组件: DispatcherServlet :前端控制 ...
- SC-控制Windows服务的命令
Windows自带一个控制服务的命令-SC,下面用Terminal Service做个简单例子: 查询Terminal Service的配置 C:\Users\jackie.chen>sc qc ...
- 文字排版一律用plist
NSMutableArray *newhealthArr = [NSMutableArray new]; NSArray *healthTitleArr = [NSArray arrayWithCon ...
- Swift游戏实战-跑酷熊猫 09 移除场景之外的平台
上一节,我们写出了一个疯狂产生平台的东西.所谓上帝欲使其灭亡,必先使其疯狂.所以太疯狂都不是什么好事,所以我们要采取一些措施,例如移除场景之外的平台.btw如果哪天你觉得自己的老板行为乖张,难以理喻. ...
- 内存溢出之Tomcat内存配置
设置Tomcat启动的初始内存其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4. 可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置 三.实例,以下给 ...
- linux第5天 socket api
IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件<netinet/in.h>中 通用地址结构用来指定与套接字关联的地址.以socka ...
- cocos2d-x游戏开发之动画
MyGame.h中声明动画函数: class MyGame : public cocos2d::Layer{public: static Scene* createScene(); void U ...
- asp.net项目发布网上-当前自定义错误设置禁止远程查看应用程序
早上服务器的系统突然出错了,悲剧~ ==============异常信息:============================== 服务器上出现应用程序错误.此应用程序的当前自定义错误设置禁止远程 ...
- 查看lnmp 编译参数
nginx :版本/opt/local/nginx/sbin/nginx -v 编译参数:/opt/local/nginx/sbin/nginx -V apache:版本/opt/local/http ...
- 【secureCRT】如何在secureCRT上设置常用的快捷输出按钮栏
转自:http://jingyan.baidu.com/article/5d6edee2f32de199eadeec25.html 方法/步骤 打开secureCRT软件,单击菜单栏上面的[查看] ...