在触发对撞机上播放动画

时间:2018-08-16 23:32:08

标签: c# unity3d

所以我查了一下,但对我没有任何帮助。 我有一个名为“ gemAnimation1”的动画,并且有一个设置要触发的盒对撞机。当它与播放器碰撞时,我希望它切换动画。这是我拼凑的代码,但是没有用。 动画“ hasTouched”的触发器。

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

public class gemCollider : MonoBehaviour {

    private Animator animator;

    void Start()
    {
        animator = GetComponent<Animator>();
    }
    void Update ()
    {

    }

    void OnTriggerEnter (Collider other)
    {
        animator.SetTrigger("hasTouched");
    }
}

编辑

这是脚本附加到的游戏对象的屏幕截图。 gameobject animator

1 个答案:

答案 0 :(得分:3)

OnTriggerEnter函数用于3D GameObjects。

您使用的SpriteRendererBoxCollider2D都用于2D GameObjects。必须使用以OnTriggerEnter2D作为参数的Collider2D函数。

void OnTriggerEnter2D(Collider2D collision)
{
    animator.SetTrigger("hasTouched");
}

注意:

必须还必须将Rigidbody2D附加到2D对象之一,以便调用OnTriggerEnter2D函数。您的屏幕快照中没有看到Rigidbody2D