如果一个对象与另一个对象发生碰撞,则返回true

时间:2019-05-27 19:46:57

标签: c# unity3d

我正在尝试创建一个函数,如果游戏对象与带有标签“ Ground”的任何东西碰撞,则返回true,但是,return带有下划线“ Since'PlayerController.PlayerController(Collision2d)'返回void, return关键字不得后面跟对象表达式”。我需要进行哪些更改?

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

2 个答案:

答案 0 :(得分:1)

首先,您需要为方法使用返回类型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)

答案 1 :(得分:1)

看起来您有一个私有函数,该私有函数可能默认为void返回类型?给它一个布尔返回类型或其他任何东西,然后无论您从哪里调用该函数,都要检查它的结果是否为真,以了解是否存在冲突。

相关问题