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

Physics.BoxCast

Объявление

public static bool BoxCast(Vector3 center, Vector3 halfExtents, Vector3 direction, Quaternion orientation = Quaternion.identity, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

Параметры

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

Возвращает

bool true, если какие-то пересечения были найдены.

Описание

Отбрасывает коробку по лучу и возвращает подробную информацию о том, что произошло.


Объявление

public static bool BoxCast(Vector3 center, Vector3 halfExtents, Vector3 direction, out RaycastHit hitInfo, Quaternion orientation = Quaternion.identity, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

Параметры

center Центр коробки.
halfExtents Половина размера коробки в каждом измерении.
direction Направление, в котором бросать ящик.
hitInfo Если возвращено значение true, hitInfo будет содержать дополнительную информацию о том, где произошло столкновение с коллайдером. (Смотрите так же: RaycastHit).
orientation Вращение коробки.
maxDistance Максимальная длина заброса.
layerMask Маска слоя, которая используется для выборочного игнорирования коллайдеров при использовании капсулы.
queryTriggerInteraction Указывает, должен ли этот запрос вызывать триггеры.

Возвращает

bool true, если какие-то пересечения были найдены.

Описание

Отбрасывает коробку по лучу и возвращает подробную информацию о том, что произошло.

//Attach this script to a GameObject. Make sure it has a Collider component by clicking the Add Component button. Then click Physics>Box Collider to attach a BoxCollider component. //This script creates a BoxCast in front of the GameObject and outputs a message if another Collider is hit with the Collider’s name. //It also draws where the ray and BoxCast extends to. Just press the Gizmos button to see it in Play Mode. //Make sure to have another GameObject with a Collider component for the BoxCast to collide with. using UnityEngine; public class Example : MonoBehaviour { float m_MaxDistance; float m_Speed; bool m_HitDetect; Collider m_Collider; RaycastHit m_Hit; void Start() { //Choose the distance the Box can reach to m_MaxDistance = 300.0f; m_Speed = 20.0f; m_Collider = GetComponent<Collider>(); } void Update() { //Simple movement in x and z axes float xAxis = Input.GetAxis("Horizontal") * m_Speed; float zAxis = Input.GetAxis("Vertical") * m_Speed; transform.Translate(new Vector3(xAxis, 0, zAxis)); } void FixedUpdate() { //Test to see if there is a hit using a BoxCast //Calculate using the center of the GameObject's Collider(could also just use the GameObject's position), half the GameObject's size, the direction, the GameObject's rotation, and the maximum distance as variables. //Also fetch the hit data m_HitDetect = Physics.BoxCast(m_Collider.bounds.center, transform.localScale, transform.forward, out m_Hit, transform.rotation, m_MaxDistance); if (m_HitDetect) { //Output the name of the Collider your Box hit Debug.Log("Hit : " + m_Hit.collider.name); } } //Draw the BoxCast as a gizmo to show where it currently is testing. Click the Gizmos button to see this void OnDrawGizmos() { Gizmos.color = Color.red; //Check if there has been a hit yet if (m_HitDetect) { //Draw a Ray forward from GameObject toward the hit Gizmos.DrawRay(transform.position, transform.forward * m_Hit.distance); //Draw a cube that extends to where the hit exists Gizmos.DrawWireCube(transform.position + transform.forward * m_Hit.distance, transform.localScale); } //If there hasn't been a hit yet, draw the ray at the maximum distance else { //Draw a Ray forward from GameObject toward the maximum distance Gizmos.DrawRay(transform.position, transform.forward * m_MaxDistance); //Draw a cube at the maximum distance Gizmos.DrawWireCube(transform.position + transform.forward * m_MaxDistance, transform.localScale); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3