首页 > 解决方案 > 我刚开始编程,下面的错误并没有停止出现错误 CS1955 Non-invocable member 'Component.tag' cannot be used like a method

问题描述

我试图在谷歌中搜索它,但答案在我的具体情况下不起作用,而且我不知道没有人知道编程,所以我正在尝试有知识的人帮助我:

private void OnCollisionEnter2D(Collision2D collision)
{
    if(collision.transform.tag("ground") = canJump = true)
    {
        canJump = true;
    }
}

标签: c#unity3d

解决方案


Component.tag是一个属性,而不是一个方法,假设您正在检查转换的标签是否为,如果是,则ground设置canJump为 true ,您可以这样编写:

private void OnCollisionEnter2D(Collision2D collision)
{
    if(collision.transform.tag == "ground")
    {
        canJump = true;
    }
}

请注意,要将某些内容等同起来,您需要使用==运算符而不是=,因为=仅在将值分配给变量时使用。

正如@derHugo 提到的,您还可以使用Component.CompareTag

private void OnCollisionEnter2D(Collision2D collision)
{
    if(collision.transform.CompareTag("ground"))
    {
        canJump = true;
    }
}

推荐阅读