Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Physics.OverlapBox

Объявление

public static Collider[] OverlapBox(Vector3 center, Vector3 halfExtents, Quaternion orientation = Quaternion.identity, int layerMask = AllLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

Параметры

center Центр коробки.
halfExtents Половина размера коробки в каждом измерении.
orientation Вращение коробки.
layerMask Маска слоя, используемая для выборочного игнорирования коллайдеров при создании луча.
queryTriggerInteraction Указывает, должен ли этот запрос вызывать триггеры.

Возвращает

Collider[] Коллайдеры, которые пересекаются с данным полем.

Описание

Найти все коллайдеры, соприкасающиеся с данным полем или находящиеся внутри него.

Создает невидимый блок, который вы определяете, который проверяет коллизии, выводя информацию о любых коллайдерах, которые соприкасаются с блоком.

//Прикрепите этот скрипт к вашему GameObject. Этот GameObject не обязательно должен иметь компонент Collider. //Установите в поле Маска Слой в Инспекторе слой, в котором вы хотите видеть коллизии (установите значение Все, если вы не уверены). //Создаем второй объект Game для проверки столкновений. Убедитесь, что ваш GameObject имеет компонент Collider (если его нет, нажмите кнопку Добавить компонент в инспекторе GameObject и перейдите в раздел Physics>Box Collider). // Разместите его так, чтобы он перекрывал другой GameObject. //Нажмите Play, чтобы увидеть, как консоль выводит имя вашего второго GameObject //Этот скрипт использует OverlapBox, который создает невидимый боксколлайдер, обнаруживающий множественные столкновения с другими коллайдерами. В этом случае OverlapBox имеет тот же размер и положение, что и GameObject, к которому вы его присоединяете (заменяет BoxCollider). составная часть). using UnityEngine; public class OverlapBoxExample : MonoBehaviour { bool m_Started; public LayerMask m_LayerMask; void Start() { // Используйте это, чтобы убедиться, что Gizmos отрисовываются в Mode. m_Started = true; } void FixedUpdate() { MyCollisions(); } void MyCollisions() { // Используйте OverlapBox, чтобы определить, есть ли какие-либо другие коллайдеры в пределах этой области. // Используем центр GameObject, половину размера (в качестве радиуса) и поворот. Это создает невидимую рамку вокруг вашего GameObject. Collider[] hitColliders = Physics.OverlapBox(gameObject.transform.position, transform.localScale / 2, Quaternion.identity, m_LayerMask); int i = 0; // Проверить, когда новый коллайдер соприкоснется с коробкой while (i < hitColliders.Length) { //Output all of the collider names Debug.Log("Hit : " + hitColliders[i].name + i); //Increase the number of Colliders in the array i++; } } // Нарисуйте Box Overlap как гизмо, чтобы показать, где он в настоящее время тестируется. Нажмите кнопку Gizmos, чтобы увидеть это. void OnDrawGizmos() { Gizmos.color = Color.red; // Check that it is being run in Play Mode, so it doesn't try to draw this in Editor mode if (m_Started) // Draw a cube where the OverlapBox is (positioned where your GameObject is as well as a size) Gizmos.DrawWireCube(transform.position, transform.localScale); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3