@Igorxl

Почему нет ошибки в присваивании типу bool Collider2D?

Почему нет ошибки в присваивании типу bool Collider2D? Почему юнити не выдает ошибок, ведь метод OverlapCircle возвращает Collider2D?
bool isGrounded = Physics2D.OverlapCircle(groundcheck.position, radius, layerMask)
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Потому что Collider2D наследуется от Object, у которого есть оператор конвертации в bool. Практически все юнитёвые сущности можно не сравнивать с null, а просто вставлять в условие, например, if(transform). Связано появление этого оператора с тем, что объекты живут не только в шарповом коде, но и в плюсовой части движка. То есть в шарпе объект может быть не null, а в плюсовой части уже уничтожился, и наоборот. Но это было актуально пару лет назад, с тех пор они бэкэнд переписывали и проблем с этим я уже давно не наблюдал, считайте, что это просто остатки легаси кода. Ещё иногда про это спрашивают на собеседованиях, но это скорее мусорные знания, дизайн так себе.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы