Возвращает истину, если объект сталкивается с другим объектом - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь создать функцию, которая возвращает true, если игровой объект сталкивается с чем-либо, имеющим тег «Ground», однако return подчеркивается текстом «Так как PlayerController.PlayerController (Collision2d)» возвращает void, aКлючевое слово return не должно сопровождаться выражением объекта ".Какие изменения мне нужно сделать?

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

Ответы [ 2 ]

1 голос
/ 27 мая 2019

Похоже, у вас есть приватная функция, которая может по умолчанию возвращать void возвращаемый тип? Присвойте ему тип возврата bool или что-то в этом роде, а затем, где бы вы ни вызывали функцию, проверяйте, является ли ее результат верным, чтобы узнать, есть ли столкновение или нет.

1 голос
/ 27 мая 2019

Сначала вам потребуется тип возврата 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...