Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在触发器碰撞器上播放动画_C#_Unity3d - Fatal编程技术网

C# 在触发器碰撞器上播放动画

C# 在触发器碰撞器上播放动画,c#,unity3d,C#,Unity3d,所以我已经查过了,但对我来说什么都不管用。 我有一个动画,叫做“gemAnimation1”,我有一个盒子碰撞器设置为触发。当它与播放器碰撞时,我希望它切换动画。这是我拼凑的代码,但不起作用。 动画“HasTouch”的触发器 using System.Collections; using System.Collections.Generic; using UnityEngine; public class gemCollider : MonoBehaviour { private

所以我已经查过了,但对我来说什么都不管用。 我有一个动画,叫做“gemAnimation1”,我有一个盒子碰撞器设置为触发。当它与播放器碰撞时,我希望它切换动画。这是我拼凑的代码,但不起作用。 动画“HasTouch”的触发器

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");
    }
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类碰撞器:单行为{
私人动画师;
void Start()
{
animator=GetComponent

OnTriggerEnter
功能用于3D游戏对象

您正在使用
SpriteRenderer
BoxCollider2D
,这两个都是用于2D游戏对象的。必须使用
OnTriggerEnter2D
函数和
Collider2D
作为参数

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


还必须将
Rigidbody2D
附加到其中一个2D对象,才能调用
OnTriggerInter2D
函数。我在屏幕截图中没有看到
Rigidbody2D

您能发布此脚本附加到的对象的屏幕截图吗?Inspectortab.我需要查看Animator组件的设置。另外,在
OnTriggerEnter
中使用一个简单的
Debug.Log
,看看是否在屏幕截图中调用了它,由于某种原因,它根本没有被调用。我用
Debug.Log
进行了检查,就像你在屏幕截图中建议的那样,你必须展开动画然后拍摄一个屏幕截图