Animator Override Controller学习及性能测试

本文由博主(YinaPan)原创,转载请注明出处: http://www.cnblogs.com/xsln/p/Animator_Override_Controller.html

一、Animator Override Controller简介:
  动画覆盖器是一类asset,它允许你扩张已经存在的动画控制器,用特定的animations,但是需要保留原始的结构、参数和逻辑;

这就允许你创建同一个基础状态机的多个变种,这些变种使用不同的animations。

  例如:你有一系列的npc生活在游戏中,他们有自己的独特走、idle、坐等animations,创建一个基础动画控制器,包含所有种类npc的逻辑,

你就可以创建一个override为每一种NPC,然后用他们各自的animation去填充;

二、制作方法:

图标:带+号为Override Controller

1、Create选择Animator Override Controller

2、修改名字为M2_P01

3、将原来的AnimtorController拖到Controller内,即制作完成!

三、使用及this[]的性能测试

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class AnimatorOveridePerformance : MonoBehaviour {
 5     public bool m_test = true;
 6     Animator m_animator = null;
 7     AnimatorOverrideController m_Old = null;
 8     AnimatorOverrideController m_New = null;
 9 
10     // Use this for initialization
11     void Start () {
12         m_animator = GetComponent<Animator>();
13         m_Old = new AnimatorOverrideController();
14         m_New = Resources.Load<AnimatorOverrideController>("Packages/ArtWorks/Player/M2/M2_P04/M2_P04");
15         Debug.LogError(m_New);
16         m_Old = (AnimatorOverrideController)m_animator.runtimeAnimatorController;
17         if (null != m_New) {
18             Debug.LogError(m_Old["P01Attack01"]);
19             Debug.LogError(m_Old["P01Attack02"]);
20             m_Old["P01Attack01"] = m_New["P04Attack01"];
21             m_Old["P01Attack02"] = m_New["P04Attack02"];
22             Debug.LogError(m_Old["P01Attack01"]);
23             Debug.LogError(m_Old["P01Attack02"]);
24         }        
25     }
26 
27     void Update() {
28         Profiler.BeginSample("Update");
29         if (m_test && m_New) {
30             Profiler.BeginSample("this[]");
31             m_Old["P01Attack01"] = m_New["P04Attack01"];
32             m_Old["P01Attack02"] = m_New["P04Attack02"];
33             Profiler.EndSample();
34         }
35         Profiler.EndSample();
36     }
37 
38 }
View Code
测试结果:
     单次取和设置消耗约为0.5~1ms左右;
posted @ 2016-01-22 17:29  爱折腾的西山居士  阅读(4549)  评论(0编辑  收藏  举报