Unity:为什么动画在进入触发器时不播放?

时间:2018-07-17 15:44:07

标签: c# unity3d animation

我有两个游戏对象,一个带有盒子对撞机(例如Tiger),另一个带有盒子对撞机设置为Is Trigger(比如Horse)。我希望当Tiger游戏对象停留在触发器中时播放动画“ hit”,而当它退出触发器时,我希望它继续播放“ idle”动画。我设置了两个参数(也称为“ hit”和“ idle”)作为触发器。但是没有动画在播放。有人可以帮忙吗?

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class newAttack : MonoBehaviour {

        public GameObject tiger;
        int hitHash = Animator.StringToHash("hit");
        int exitHash = Animator.StringToHash("idle");

       Animator myAnimation;

        private void Start()
        {
            myAnimation = GetComponent<Animator>();

        }


        void OnTriggerStay(Collider other)
        {
            Debug.Log("Inside Trigger");
            myAnimation.SetTrigger(hitHash);
        }



        private void OnTriggerExit(Collider other)
        {
             Debug.Log("Exit Trigger");
             myAnimation.SetTrigger(exitHash);         
        }

    }

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我认为您没有正确设置动画师。为了使参数起作用(例如bool输入),您必须进行从空闲到命中(条件:输入true)和从命中到空闲(条件:输入false)的转换。然后使用脚本在触发停留和退出时切换该条件。