【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 }
综上所述,Animation Parameter是一个script可写,transition可读的控制变量。
参考:file://localhost/Applications/Unity/Unity.app/Contents/Documentation/Documentation/Manual/AnimationParameters.html