Доступ к gameObject из Physics2D.Raycast и Physics2D.OverlapCircle - PullRequest
0 голосов
/ 08 марта 2020

Мне любопытно, почему я не могу получить доступ к gameObject напрямую из Physics2D.Raycast, поскольку я могу сделать это из Physics2D.OverlapCircle. Как пример:

Collider2D topHit = Physics2D.OverlapCircle(top_Collision.position, 0.2f, playerLayer);
if(topHit.gameObject.tag == "Player")

А для Physics2D.Raycast:

RaycastHit2D leftHit = Physics2D.Raycast(left_Collision.position, Vector2.left, 0.1f, playerLayer);
if (leftHit.collider.gameObject.tag == "Player")

Почему я должен использовать «коллайдер»?

А также, пожалуйста, сообщите мне, как используйте документацию или Microsoft Visual Studio, чтобы избежать подобных вопросов. Я имею в виду, как я могу проверить такую ​​вещь самостоятельно - как попасть в gameObject?

1 Ответ

2 голосов
/ 08 марта 2020

Вы должны использовать collider из-за типа возврата Physics2D.Raycast . Он возвращает RaycastHit2D , и этот объект содержит некоторую другую информацию, кроме коллайдера объекта, такую ​​как расстояние и другие параметры, которые вы можете проверить в документах.

RaycastHit2D.collider имеет тип Collider2D , который совпадает с типом возврата Physics2D.OverlapCircle .

Вы всегда должны обращаться к Справочнику по Unity Scripting и проверять свой Предложения автозаполнения IDE, они обычно идут с фрагментами документации и вы можете помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...