Я пытаюсь сделать функцию, которая возвращает true, если игровой объект сталкивается с чем-либо, имеющим тег «Ground», однако return подчеркивается текстом «Поскольку PlayerController.PlayerController (Collision2d)» возвращает void, ключевое слово return должно не должно сопровождаться выражением объекта ". Какие изменения мне нужно сделать?
private CanJump(Collision2D collision)
{
if (collision.gameObject.tag == "Groumd") ;
{
return true;
}
}
2 ответа
Во-первых, вам понадобится тип возврата 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 или что-то в этом роде, а затем, где бы вы ни вызывали функцию, проверяйте, верен ли ее результат, чтобы узнать, есть ли столкновение или нет.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.