首页 > 解决方案 > 如果碰撞对象具有标签“玩家”,则触发事件

问题描述

我在游戏中的蜘蛛饲养箱周围有一个触发区域,并希望在玩家走进触发器时触发蜘蛛的动画,这是我的尝试,但它返回错误“名称 'col' 不存在于当前上下文”。提前致谢!

public class Spider: MonoBehaviour 
{
    Animator anim;

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

    private void OnCollisionEnter(Collision collision)
    {
        if (col.gameObject.tag == "Player")
        {
            anim.SetTrigger("spider");

        }
    }
}

标签: c#unity3dcollision-detection

解决方案


当前上下文中不存在名称“col”

col此错误消息已经解释了问题:您的代码中没有调用变量。正确的名称collision在方法参数中定义。

private void OnCollisionEnter(Collision collision)
{
    if (col.gameObject.tag == "Player")
    {
        anim.SetTrigger("spider");

    }
}

应该

private void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.tag == "Player")
    {
        anim.SetTrigger("spider");

    }
}

推荐阅读