如果碰撞的对象具有标记"播放器"

时间:2018-05-05 16:51:07

标签: c# unity3d collision-detection

我的游戏中有一个蜘蛛玻璃容器周围的触发区,并希望当玩家走进触发器时触发蜘蛛的动画,这是我的尝试,但它返回错误&#34 ;名称' 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");

        }
    }
}

2 个答案:

答案 0 :(得分:2)

  

当前上下文中不存在名称“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");

    }
}

答案 1 :(得分:2)

在您的代码中,碰撞对象的名称为collision,因此在检查变量时需要使用该名称:

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

    }
}