博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity-Animator深入系列---StateMachineBehaviour初始化时间测试
阅读量:6257 次
发布时间:2019-06-22

本文共 746 字,大约阅读时间需要 2 分钟。

回到 

 

结果和想的有点出入

 

测试结果:

1.SMB初始化会被调用多次,次数不可控,当Animator组件重复开关则重复初始化。

2.SMB支持构造函数

 

 

MyClass

public class MyClass{    public MyClass()    {        Debug.Log("Init!");    }}
View Code

 

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");    }}
View Code

 

MyClass放在TestSMB上初始化,通过log判断初始化了几次

 

Editor下测试:

 

build到pc版测试:

 

 

很显然,初始化次数不可控!并且和Editor没关系,Unity内部每次初始化Animator就会被触发。但后续的状态跳转则不会再触发。除非Animator组件重新被关掉,再次初始化。

 

和MonoBehaviour的初始化顺序关系,测试结果是在Awake之前:

 

 

 

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

 

转载于:https://www.cnblogs.com/hont/p/5186424.html

你可能感兴趣的文章
(转)android拨打电话崩溃6.0以上实时动态权限申请
查看>>
懒加载的使用
查看>>
SpringMVC报错The request sent by the client was syntactically incorrect ()
查看>>
网络层封装
查看>>
《c程序设计语言》读书笔记-4.13-递归版本reverse函数
查看>>
background-clip&background-origin
查看>>
论坛迁移日记——discuz X2.5 迁移详细教程
查看>>
拦截器的执行顺序
查看>>
GestureDetector类及其用法
查看>>
String+变量”的操作是在运行时进行
查看>>
springboot入门 —— 报错
查看>>
计算器作业(摘要算法)
查看>>
嵌入式 Linux 学习 之路
查看>>
tornado 10 长轮询和 websocket
查看>>
CSU - 1356 Catch (判奇环)
查看>>
在多线程中使用静态方法是否有线程安全问题(转载)
查看>>
使用jmeter 做个简单的接口测试
查看>>
CSS对浏览器的兼容性(IE和Firefox)技巧整理
查看>>
Poj 2388 Who's in the Middle
查看>>
springboot与redis
查看>>