zoukankan      html  css  js  c++  java
  • Unity-Animator深入系列---StateMachineBehaviour初始化时间测试

    回到 Animator深入系列总目录

    结果和想的有点出入

    测试结果:

    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之前:

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

  • 相关阅读:
    拓扑编号
    奇怪的梦境
    奖金
    最优布线问题
    亲戚
    最小花费
    Dijkstra算法 最短路径 (部分)
    Floyed算法 最短路径
    P1164 小A点菜(背包方案数模板)
    P1049 装箱问题
  • 原文地址:https://www.cnblogs.com/hont/p/5186424.html
Copyright © 2011-2022 走看看