Unity 6.3
0 онлайн 66 гостей 3 в системе
Вход

Bounds

структура в UnityEngine

Выполнено в:UnityEngine.CoreModule

Описание

Представляет собой выравниваемый по оси предельный блок.

предельный блок, выравниваемый по оси, или AABB вкратце, это коробка, выстроенная по координатным осям и полностью охватывающая какой-либо объект. Поскольку коробка никогда не поворачивается относительно осей, ее можно определить только ее center и extents, или в качестве альтернативы min и max пунктов.

Bounds используется Collider.bounds, Mesh.bounds и Renderer.bounds.

using UnityEngine;

public class BoundsVisualizer : MonoBehaviour { public Bounds bounds;

void Start() { // Example bounds setup if not assigned if (bounds.size == Vector3.zero) bounds = new Bounds(transform.position, Vector3.one); }

void Update() { DrawBounds(bounds, Color.red); }

void DrawBounds(Bounds b, Color color) { Vector3 min = b.min; Vector3 max = b.max;

Vector3[] corners = new Vector3[8]; // Bottom corners[0] = new Vector3(min.x, min.y, min.z); corners[1] = new Vector3(max.x, min.y, min.z); corners[2] = new Vector3(max.x, min.y, max.z); corners[3] = new Vector3(min.x, min.y, max.z); // Top corners[4] = new Vector3(min.x, max.y, min.z); corners[5] = new Vector3(max.x, max.y, min.z); corners[6] = new Vector3(max.x, max.y, max.z); corners[7] = new Vector3(min.x, max.y, max.z);

// Bottom rectangle Debug.DrawLine(corners[0], corners[1], color); Debug.DrawLine(corners[1], corners[2], color); Debug.DrawLine(corners[2], corners[3], color); Debug.DrawLine(corners[3], corners[0], color);

// Top rectangle Debug.DrawLine(corners[4], corners[5], color); Debug.DrawLine(corners[5], corners[6], color); Debug.DrawLine(corners[6], corners[7], color); Debug.DrawLine(corners[7], corners[4], color);

// Vertical edges Debug.DrawLine(corners[0], corners[4], color); Debug.DrawLine(corners[1], corners[5], color); Debug.DrawLine(corners[2], corners[6], color); Debug.DrawLine(corners[3], corners[7], color); } }

Свойства

Свойство Описание
centerЦентр границы.
extentsРазмеры границы. Это всегда половина размера границ.
maxМаксимальная точка коробки. Она всегда равна центру + пределам.
minМинимальная точка коробки. Она всегда равна центру пространства.
sizeОбщий размер коробки. Этот размер всегда в два раза больше, чем размеры.

Конструкторы

Конструктор Описание
BoundsСоздает новую границу.

Открытые методы

Метод Описание
ClosestPointБлижайшая точка на границе.
ContainsСодержится ли точка в пределах границы?
EncapsulateРасширяет границы, чтобы включить точку.
ExpandРасширить границы на: размер + (количество * 2) вдоль каждой стороны.
IntersectRayПересекает ли луч эту граничную клетку?
IntersectsПересекается ли с этой границей другая граничная рамка?
SetMinMaxУстанавливает пределы на минимальное и максимальное значения в блоке.
SqrDistanceНаименьшее квадратное расстояние между точкой и этим пределом.
ToStringВозвращает форматированную строку для границ.