首页 > 解决方案 > 如果一个对象与另一个对象发生碰撞,则返回 true

问题描述

我正在尝试创建一个函数,如果游戏对象与任何带有“Ground”标签的东西发生碰撞,则返回 true,但是,返回带有下划线的文本“因为'PlayerController.PlayerController(Collision2d)' 返回 void,返回关键字必须后面不能跟对象表达式”。我需要做哪些改变?

private CanJump(Collision2D collision)
{
    if (collision.gameObject.tag == "Groumd") ;
    {
        return true;
    }
}

标签: c#unity3d

解决方案


首先,您的方法需要一个返回类型bool,并且还有一个默认返回false

private bool CanJump(Collision2D collision)
{
    if(collision.gameObject.tag == "Groumd") ;
    {
        return true;
    }

    return false;
}

然后你可以缩短它来简单地做

private bool CanJump(Collision2D collision)
{
    return collision.gameObject.tag == "Groumd";
}

然而..对于这样一个班轮,方法可能是一个品味问题,但为什么不直接在你称之为使用的方法中

collision.gameObject.tag == "Groumd"

而不是那个

CanJump(collision)

推荐阅读