Plane
структура в UnityEngine
Выполнено в:UnityEngine.CoreModule
Описание
Представление плоскости в пространстве 3D.
Плоскость — это бесконечно большая плоская поверхность в трёхмерном пространстве, которая делит его на две половины, называемые полупространствами. Можно легко определить, в каком из двух полупространств находится точка и на каком расстоянии от плоскости она расположена. Стены, полы и другие плоские поверхности часто встречаются в играх, поэтому плоскость бывает полезна для математических вычислений с такими объектами. Иногда реальной поверхности нет, но удобно представить, что она существует. Например, в спорте линию ворот или границу поля часто мысленно продолжают вверх, фактически определяя плоскость.
Если плоскость проходит через точку <0,0,0> мирового пространства, её достаточно задать вектором нормали, который определяет направление лицевой стороны. Это легко представить, если смотреть на плоскость с ребра.
На предыдущем изображении плоскость показана диагональной красной линией с уравнением x = y, проходящей через начало координат <0,0,0> мирового пространства. Вторая линия изображает вектор нормали с положительной составляющей y и указывает направление лицевой стороны плоскости.
Направление вектора нормали важно, поскольку по нему определяется, в каком полупространстве находится точка: на положительной, или «нормальной», стороне плоскости либо с другой стороны. Если плоскость не проходит через <0,0,0>, её можно задать вектором нормали и расстоянием от <0,0,0>.
На предыдущем изображении плоскость показана диагональной красной линией, которая проходит через точку со смещением -2, 0, а не через начало координат <0,0,0>. Вторая линия изображает вектор нормали с положительной составляющей y и указывает направление лицевой стороны плоскости. Третья пунктирная линия задаёт расстояние между плоскостью и началом координат.
Плоскость также можно задать тремя угловыми точками треугольника, лежащего в ней. В этом случае вектор нормали направлен к наблюдателю, если при взгляде на лицевую сторону треугольника его вершины расположены по часовой стрелке.
.
На предыдущем изображении треугольник задан точками A внизу слева, B вверху и C внизу справа. Стрелка показывает, что плоскость, в которой лежит этот треугольник, обращена к наблюдателю.
Свойства
| Свойство | Описание |
|---|---|
| distance | Расстояние, измеряемое от плоскости к источнику, вдоль нормали плоскости. |
| flipped | Возвращает копию плоскости, которая обращена в противоположном направлении. |
| normal | Нормальный вектор плоскости. |
Конструкторы
| Конструктор | Описание |
|---|---|
| Plane | Создает плоскость. |
Открытые методы
| Метод | Описание |
|---|---|
| ClosestPointOnPlane | Для заданной точки возвращает ближайшую точку на плоскости. |
| Flip | Делает плоскость лицом в противоположном направлении. |
| GetDistanceToPoint | Возвращает знаковое расстояние от плоскости до точки. |
| GetSide | Есть ли точка на положительной стороне плоскости? |
| Raycast | Пересекает луч с плоскостью. |
| SameSide | Являются ли две точки на одной стороне плоскости? |
| Set3Points | Устанавливает плоскость с помощью трех точек, которые лежат внутри нее. Точки вращаются по часовой стрелке, когда вы смотрите вниз на верхнюю поверхность плоскости. |
| SetNormalAndPosition | Устанавливает плоскость, используя точку, которая лежит внутри нее, вместе с нормалью для ее ориентации. |
| Translate | Возвращает копию заданной плоскости, которая перемещается в пространстве при заданной трансляции. |