Version: 6000.3
语言: 中文
动画状态(Animation States)
状态机转换

动画参数

动画参数是在Animator 控制器通过动画层控制动画状态机和动画混合树,由动画参数控制。具有 Animator 组件的多个模型可以引用同一个 Animator 控制器。更多信息
请参阅术语表
可以从脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
. 这就是脚本如何控制或影响状态机Animator 控制器中角色或动画游戏对象可以处于的状态集,以及这些状态之间的一组转换和用于记住当前状态的变量。可用的状态取决于游戏的类型,但典型的状态包括空闲、行走、奔跑和跳跃等。更多信息
请参阅术语表
.

动画参数。
动画参数。

例如,参数的值可以通过动画曲线更新,然后从脚本中访问,这样,就可以像一段动画一样改变音效的音高。同样,脚本可以设置要由Mecanim拾取的参数值。例如,脚本可以设置参数来控制混合树

可以使用动画器窗口可视化和编辑动画器控制器的窗口。更多信息
请参阅术语表
,可在 Animator 窗口的右上角选择。它们可以有四种基本类型:

  • 整数 - 整数
  • 浮点 - 带有小数部分的数字
  • Bool - true 或 false 值(由复选框表示)
  • 触发器 - 一个布尔参数,当被过渡(由圆形按钮表示)使用时,控制器会重置它

可以使用 Animator 类中的函数从脚本中分配参数值:SetFloatSetIntegerSetBoolSetTriggerResetTrigger

下面是一个脚本示例,该脚本根据用户输入和碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息
请参阅术语表
检波:

using UnityEngine;
using System.Collections;

public class SimplePlayer : MonoBehaviour {

    Animator animator;
    
    // Use this for initialization
    void Start () {
        animator = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update () {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");
        bool fire = Input.GetButtonDown("Fire1");

        animator.SetFloat("Forward",v);
        animator.SetFloat("Strafe",h);
        animator.SetBool("Fire", fire);
    }

    void OnCollisionEnter(Collision col) {
        if (col.gameObject.CompareTag("Enemy"))
        {
            animator.SetTrigger("Die");
        }
    }
}

动画状态(Animation States)
状态机转换