【问题标题】:I just start programing and the following error does not stop appearing error CS1955 Non-invocable member 'Component.tag' cannot be used like a method [duplicate]我刚开始编程,以下错误并没有停止出现错误 CS1955 Non-invocable member 'Component.tag' cannot be used like a method [重复]
【发布时间】:2021-05-31 19:45:04
【问题描述】:

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

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

【问题讨论】:

  • 如果您刚开始学习编程,我强烈建议您不要从 Unity 开始。相反,学习基础知识。
  • 等式比较运算符是==,而不是=
  • 不要放弃团结的希望,但我建议您查阅一些 c# 语法参考。

标签: c# unity3d


【解决方案1】:

Component.tagproperty,而不是方法,假设您正在检查转换的标签是否为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;
    }
}

【讨论】:

  • 一般来说,你应该使用CompareTag而不是==,我认为这就是OP最初可能被混淆的地方......它可能应该是if(collision.transform.CompareTag("ground"))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-18
  • 1970-01-01
  • 2023-02-08
  • 2022-12-22
  • 1970-01-01
  • 2016-02-25
  • 2020-10-04
相关资源
最近更新 更多