Я пытаюсь создать функцию, которая возвращает значение true, если игровой объект сталкивается с чем-либо, имеющим тег «Земля», однако возвращаемое значение подчеркивается текстом «Поскольку «PlayerController.PlayerController(Collision2d)» возвращает значение void, ключевое слово return должно не сопровождаться выражением объекта". Какие изменения мне нужно внести?
private CanJump(Collision2D collision)
{
if (collision.gameObject.tag == "Groumd") ;
{
return true;
}
}





Во-первых, вам понадобится возвращаемый тип 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)
Похоже, у вас есть частная функция, которая по умолчанию может возвращать тип void? Дайте ему тип возвращаемого значения bool или что-то в этом роде, а затем, где бы вы ни вызывали функцию, проверьте, верен ли ее результат, чтобы узнать, есть ли коллизия или нет.