Animator触发器因出现错误“参数不存在”而未触发

时间:2018-08-28 11:54:23

标签: c# visual-studio unity3d animation

我是一个团结的新手,所以我无法弄清楚,我的游戏中有海豚碰撞时死了,所以它有两个动画,一个是移动到尸体的动画,第二个动画是气泡,是海豚的孩子对象,它触发的第二个触发器是停止气泡,第一个触发器正在起作用,即它的运动物体变为死体,但是第二个触发器不起作用,因为它的气泡仍在消失,我知道发生了什么事。

public class Dolphin : MonoBehaviour 
{
    private bool IsDead=false;
    private Rigidbody2D rb2d;
    public float upforce = 200f;
    private Animator anim;

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

    // Update is called once per frame
    void Update () 
    {
        if (IsDead == false)
        {
            if (Input.GetMouseButtonDown(0))
            {
                rb2d.velocity = Vector2.zero;
                rb2d.AddForce(new Vector2(0, upforce));
            }
        }
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        IsDead = true;
        anim.SetTrigger("Die");
        anim.SetTrigger("StopBubble");

        Debug.Log("rigger");             
    }  
}

Animation 1

Animation 2

1 个答案:

答案 0 :(得分:1)

您应该将第二个触发器设置为气泡游戏对象Animator(而不是Dolphin Animator)

仅将脚本更改为此:

private void OnCollisionEnter2D(Collision2D collision)
{
  IsDead = true;
  anim.SetTrigger("Die");
  transform.GetChild(0).GetComponent<Animator>().SetTrigger("StopBubble");

  Debug.Log("rigger");             
}  

注意:您的泡泡游戏对象是海豚游戏对象的第一个子代。使用transform.GetChild(0)可以访问它)

希望对您有帮助