首页 > 代码库 > Animation Parameter

Animation Parameter

Animation Parameter

  Animation Parameters are variables that are defined within the animation system but can also be accessed and assigned values from scripts. 

  Animation Parameters 是Animator Controller中的用户自定义变量,script可以获取和设置其值,其值也可以作为transition转换的条件。配置界面如下:

  

  有四种类型的Parameter可选:

  

  Parameter可以作为transition的判定条件:

   

  script访问parameter的示例如下: 

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 
 5 public class AvatarCtrl : MonoBehaviour {
 6 
 7     protected Animator animator;
 8 
 9     public float DirectionDampTime = .25f;
10 
11     void Start () 
12     {
13         animator = GetComponent<Animator>();
14     }
15 
16     void Update () 
17     {
18         if(animator)
19         {
20             //get the current state
21             AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
22 
23             //if we‘re in "Run" mode, respond to input for jump, and set the Jump parameter accordingly. 
24             if(stateInfo.nameHash == Animator.StringToHash("Base Layer.RunBT"))
25             {
26                 if(Input.GetButton("Fire1")) 
27                     animator.SetBool("Jump", true );
28             }
29             else
30             {
31                 animator.SetBool("Jump", false);                
32             }
33 
34             float h = Input.GetAxis("Horizontal");
35             float v = Input.GetAxis("Vertical");
36 
37             //set event parameters based on user input
38             animator.SetFloat("Speed", h*h+v*v);
39             animator.SetFloat("Direction", h, DirectionDampTime, Time.deltaTime);
40         }        
41     }             
42 }
View Code

  综上所述,Animation Parameter是一个script可写,transition可读的控制变量。

参考:file://localhost/Applications/Unity/Unity.app/Contents/Documentation/Documentation/Manual/AnimationParameters.html