Как сделать управление камерой unity3d
Камера
Камеры являются устройствами, которые захватывают и отображают мир игроку. Путем настройки и манипулирования камерами, вы можете сделать презентацию своей игры поистине уникальной. Вы можете иметь неограниченное количество камер в сцене. Вы можете настроить рендеринг камерами в любом порядке, на любом месте экрана, либо только в определенных частях экрана.
Свойства
Свойство: | Функция: |
---|---|
Clear Flags | Определяет, какие части экрана будут очищены. Это удобно при использовании нескольких камер для отрисовки разных элементов игры. |
Background | Цвет, применяемый для фона после отрисовки всех элементов, в случае отсутствия скайбокса. |
###Маска отрезания | Включение или исключение слоёв объектов на рендер этой камерой. Назначение слоёв объектам производится через Inspector. |
Projection | Переключает способность камеры симулировать перспективу. |
X | Камера будет рисовать объекты в перспективе. |
X | Camera will render objects uniformly, with no sense of perspective. NOTE: Deferred rendering is not supported in Orthographic mode. Forward rendering is always used. |
Size (когда выбран ортографический режим) | Размер зоны видимости камеры для ортографического режима. |
Field of view (когда выбран режим перспективы) | Ширина угла обзора камеры, измеряется в градусах по локальной оси Y. |
###Clip Planes (Плоскости отреза) | Дистанция, на которой камера начинает и заканчивает рендеринг. |
X | Ближайшая точка относительно камеры, которая будет рисоваться. |
X | Дальняя точка относительно камеры, которая будет рисоваться. |
Normalized View Port Rect | Четыре значения, отражающие то, в какой области экрана будет выведено изображение с камеры, в экранных координатах (от 0 до 1). |
X | Начальная позиция области по горизонтали вида камеры, который будет рисоваться. |
Y | Начальная позиция области по вертикали, где вид камеры будет рисоваться. |
W (Ширина) | Ширина вида камеры на экране. |
H (Высота) | Высота вида камеры на экране. |
Depth | Позиция камеры в очереди отрисовки. Камеры с большим значением будут нарисованы поверх камер с меньшим значением. |
###Способ рендера | Опции для определения методов рендеринга для камеры. |
X | Камера использует метод рендеринга, установленный в Player Settings. |
Вершинное освещение | Все объекты рисующиеся этой камерой будут рендериться как Vertex-Lit-объекты. |
X | Все объекты будут рендериться с одним проходом на материал. |
Deferred Lighting (только в Unity Pro) | Все объекты будут рендериться сначала без освещения, а затем будет произведён рендер освещения для всех объектов разом, в конце очереди рендеринга. |
Target Texture | Ссылка на Render Texture, которая будет содержать результат рендеринга камеры. Назначение этой ссылки отключает способность камеры рендерить на экран. |
HDR | Включение технологии High Dynamic Range. |
Target Display | Defines which external device to render to. Between 1 and 8. |
Детали
Камеры очень важны для демонстрации вашей игры игроку. Они могут быть изменены, заскриптованы, наследованы для получения различных визуальных эффектов. Для паззла вы можете сделать камеру статичной и охватывающей обзором весь паззл. Для шутера от первоого лица вы можете сделать камеру дочерней по отношению к игроку и разместить её на уровне глаз персонажа. Для гоночный игры вы можете закрепить камеру позади автомобиля и заставить её следовать за ним.
Вы можете создать несколько камер и назначить каждой свою глубину(Depth). Камеры будут отрисовываться от низшей глубины до высшей глубины. Другими словами, камера с Depth 2 будет отрисована поверх камеры с Depth 1. Вы можете настроить значение свойства Normalized View Port Rectangle для изменения позиции и размера изображения с камеры на экране, например для создания нескольких экранов в одном, или для создания зеркала заднего вида.
Способ рендера
Unity поддерживает различные способы рендеринга. Вы должны выбрать один из них, в зависимости от содержимого вашей игры и целевой платформы / аппаратного обеспечения. Различные методы рендеринга поддерживают различные возможности и дают различную производительность, особенно в аспекте применения теней и источников света. Метод рендеринга, используемый в вашем проекте, выбирается в Player Settings. Дополнительно свой метод рендеринга может быть выбран для каждой камеры.
См. способы рендеринга для получения всех подробностей.
Clear Flags
Каждая камера хранит информацию о цвете и глубине, когда рендерит свой вид. По умолчанию, незаполненные части экрана, будут показаны в виде скайбокса. При использовании нескольких камер, каждая камера будет иметь свои буферы цвета и глубины, заполняемые при каждом рендеринге. Каждая камера будет рендерить то, что видно с её ракурса, а путем изменения настройки Clear Flags можно выбрать набор буферов, которые будут обновлены (очищены), во время рендеринга. Это осуществляется, выбором одного из четырёх вариантов:
Skybox
Solid color
Любые пустые части экрана будут отображать текущий фоновый цвет ( Background Color ) камеры.
Только глубина
Оружие отрисовано последним после очистки буфера глубины предшествовавшей камеры.
Не очищать
В этом режиме не очищаются ни цвет, ни буфер глубины. В результате каждый кадр рисуется поверх другого, из-за чего получится эффект размытия. Это обычно не используется в играх, и лучше использовать вместе с пользовательским шейдером.
Clip Planes (Плоскости отреза)
Near и Far Clip Plane — свойства, определяющие, где начинается и заканчивается область отрисовки камеры. Эта область ограничивается плоскостями, перпендикулярными направлению камеры, и находившимися в этих позициях относительно неё. Near Plane — это ближайшая позиция, а Far Plane — дальняя позиция.
Плоскости также определяют точность буфера глубины. Для обеспечения наивысшей точности вам следует отодвинуть Near Plane так далеко, насколько возможно.
Обратите внимание, что эти плоскости вместе определяют поле зрения камеры, которое известно как фрустум. Unity гарантирует, что объекты, полностью находящиеся за пределами фрустума, не будут отображаться. Это называется Frustum Culling и это срабатывает независимо от Occlusion Culling.
Из соображений производительности вы можете прекращать отрисовку мелких объектов раньше, чем отрисовку прочих. Для этого поместите их в separate layer и настройте дистанцию обрезки для этого слоя, используя функцию Camera.layerCullDistances.
Маска отрезания
Culling Mask используется для выборочного рендеринга групп объектов посредством использования слоёв. Больше информации об использовании слоёв можно найти здесь.
Normalized Viewport Rectangles
Создание экрана для двух игроков с помощью Normalized ViewportRectangle
Orthographic
Переключив камеру в ортографичесий ( Orthographic ) режим, вы устраните всю перспективу из отрисовываемого ей изображения. Это полезно для создания двумерных и изометрических игр.
Заметьте, что туман отрисовывается при этом равномерно, так что может выглядеть не так, как вы ожидали. Прочтите справко по компоненту Render Settings для получения подробностей.
Перспективная камера.
Ортографическая камера. Изображение объектов не уменьшается при увеличении дистанции.
Текстура рендера
Эта возможность доступна лишь в расширенных лицензиях Unity. Она позволяет отрисовывать изображенеи с камеры в текстуру (Texture), которая может быть применена к другому игровому объекту. Это делает простым создание спортивной арены с видеомониторами, камеры наблюдения, отражений и т.д.
Использование рендертекстуры для создания монитора
Target display
A camera has up to 8 target display settings. The camera can be controlled to render to one of up to 8 monitors. This is supported only on PC, Mac and Linux. In Game View the chosen display in the Camera Inspector will be shown.
Советы Доброго Змея 
Управление камерой в Unity3D, используя мышку
Одна из первых проблем, вставших передо мной — показать игроку мир вокруг него.
Но мы не ищем лёгких путей
Обращаю внимание, что в этой статье я «изобретаю велосипед» с целью познакомиться с элементарными операциями в Unity3D, изучения классов и операций с объектами. Поэтому, если Вы гуру программирования, то можете проходить мимо =)
Подготовка объектов.
Итак, начнём с того, что создадим какой-нибудь объект (например куб) и привяжем на него камеру (она у нас сейчас только одна — главная камера).
После этого создадим скрипт C#, и назовём его MoveMouse
Написание скрипта.
Изначально нужно было определить позицию мышки.
Это оказалось довольно просто — через класс Input и его параметр mousePosition, который содержит три координаты для каждой из осей — x, y и z.
Итак, заведём внутреннюю переменную MousePos, и будем сохранять в неё координаты текущей позиции мышки. Делать это лучше всего перед отрисовкой экрана в событии Update().
Для удобства, сохраним ссылку на камеру и ссылку на объект, к которому она привязана во внутренних переменных, чтоб всегда можно было к ним обратиться.
При этом мы считаем, что камера привязана именно к тому объекту, вокруг которого будет вращаться. Поэтому ищем этот объект через связь «Родитель-потомок».
Незачем это делать каждый раз, а достаточно будет сделать при создании самой камеры на сцене:
Итак, у нас уже есть ссылка на камеру, которую будем крутить, ссылка на объект, вокруг которого будем крутить, и координаты мышки.
Добавим условие, что крутить камеру будем только тогда, когда нажата правая клавиша мышки.
Узнать состояние клавиш мышки можно через всё тот-же класс Input. Специально для этого у него есть метод GetMouseButton.
Само перемещение камеры будем располагать в событии FixedUpdate():
И наконец, мы подошли к самому интересному — определить угол поворота в зависимости от позиции мышки и повернуть камеру.
Коэффициент поворота определить довольно просто: определяем позицию мышки, отнимаем от неё координату середины экрана, и делим получившееся число на размер экрана (отдельно для оси Х и отдельно для Y).
К примеру, мышка находится на координате 852 по оси Х, а размер экрана по ширине равен 1024. Тогда, согласно формуле:
Угол мы рассчитали, теперь осталось только повернуть камеру.
Сделать это можно, используя метод RotateAround класса transform.
Примечание.
Внимательные читатели могли заметить, что ось, указанная для поворота по горизонтали указана goCamera.transform.up. Честно говоря, я не знаю почему так, но именно так оно работает.
И теперь то-же самое для поворота по вертикали:
Вроде-бы можно и закругляться, но есть ещё один момент, который нужно учесть.
Пользователи всегда хотят настраиваемые параметры. И чувствительность мышки обычно стоит на одном из первых мест при настройке игры «под себя».
Давайте учтём это желание в нашем скрипте. Для этого введём параметр чувствительности sensitivity, и будем его использовать как коэффициент, влияющий на угол поворота:
Скрипт целиком.
Вот теперь точно всё, и осталось только показать весь скрипт целиком, с моими комментариями =)
Как сделать управление камерой unity3d
Нажимаем «Add component>>Physics>>Rigidbody» и «Add component>>Physics>>Capsule Collider». В «Capsule Collider» Выставляем размеры нашей капсулы что бы получилось как на картинке, слегка чуть больше модельки самой.
В «Rigidbody» ставим галочку «Use gravity». Раскрываем вкладку «Constraints» и ставим все 3 галочки на «Freeze Rotation». Это нужно для того что бы наш персонаж не проваливался сквозь землю, не падал на землю если вдруг окажется на неровности и тому подобное.
Программируем персонажа на перемещение.
Создадим c# скрипт «movePlayer».
200?’200px’:»+(this.scrollHeight+5)+’px’);»> using UnityEngine;
using System.Collections;
public class movePlayer : MonoBehaviour <
private GameObject player; //Переменна объекта персонажа с которым будем работать.
public static int speed = 6; //Скорость перемещения персонажа. Запись public static обозначает что мы сможем обращаться к этой переменной из любого скрипта
public static int _speed; //постоянная скорость перемещения персонажа
public int rotation = 250; //Скорость пповорота персонажа
public int jump = 3; //Высота прыжка
//Поворачиваем персонажа. Так как наша переменная x глобальна, из скрипта камеры в неё будем записывать длину на сколько сместился указатель мыши и по оси X и относительно этого будет повернут наш персонаж
Quaternion rotate = Quaternion.Euler (0,x,0); //Создаем новую переменную типа Quaternion для задавания угла поворота
player.transform.rotation = rotate; //Поворачиваем персонаж
200?’200px’:»+(this.scrollHeight+5)+’px’);»> codeusing UnityEngine;
using System.Collections;
private float x = 0.0f; //Угол поворота по Y?
private float y = 0.0f; //Уго поворота по X?
[AddComponentMenu(«Scripts/Mouse Orbit»)] //Добавляем в меню
public void Start() <
//переворачивам углы
Vector3 angles = transform.eulerAngles;
x = angles.y;
y = angles.x;
if(rigidbody)
rigidbody.freezeRotation = true; //Если камера столкнется с физ.объектомона остановиться
>
y = ClampAngle(y,yMinLimit, yMaxLimit); //Вызыв самописной функции для ограничения углов поврот
movePlayer.x = x;
//Повернуть камеру согласно поченым данным
Quaternion rotation = Quaternion.Euler(y, x, 0);
transform.rotation = rotation;
200?’200px’:»+(this.scrollHeight+5)+’px’);»> using UnityEngine;
using System.Collections;
public class AnimatePlayer : MonoBehaviour <
Навигация в окне Scene
Окно Scene имеет набор навигационных элементов управления, которые помогут ориентироваться в нем быстро и эффективно.
Перемещение с помощью стрелок
Фокусировка
Перемещение, вращение по орбите и масштабирование
Использование инструмента Hand (рука)
Когда выбран инструмент Hand (быстрая шлавиша: Q ), доступны следующие элементы управления мышью:
Движение: двигайте мышь с зажатой кнопкой для перемещения камеры.
Можно зажать клавишу Shift, чтобы увеличить скорость перемещения и масштабирования.
Сочетания клавиш, которые можно использовать без инструмента Hand
Для дополнительной эффективности, все эти элементы управления могут быть использованы независимо от того, какой инструмент трансформации выделен. Наиболее удобные элементы управления зависят от того, используете ли вы мышь или трекпад:
|**Действие** |3-х кнопочная мышь |2-х кнопочная мышь или трекпад |Mac с однокнопочной мышью или трекпадом | |:—|:—| |Move (Перемещение) |Удерживайте Alt двигайте мышью с зажатой средней кнопкой для перемещения. |Удерживайте Alt-Control двигайте мышь с зажатой кнопкой для перемещения. |Удерживайте Alt-Command и двигайте мышью с зажатой кнопкой для перемещения. | |*Перемещение по орбите |Hold Alt_ and click-drag. |Hold Alt and click-drag. |Hold Alt and click-drag. | |Масштабирование |Зажмите Alt и ПКМ или используйте колесо прокрутки. |Зажмите Alt и ПКМ. |Зажмите Alt-Control и ЛКМ или используйте свайп двумя пальцами. |
* Недоступно в режиме 2D.
Режим полета
Режим полета (flythrough mode) позволяет перемещаться по Scene View летая по нему в режиме от первого лица, примерно так же, как сделано управление во многих играх.
Учтите, что в 2D режиме режим полета не поддерживается. Удерживайте ПКМ и двигайте мышью чтобы смещать область обзора в окне Scene.
Гизмо сцены
You can click on any of the conical axis arms to snap the Scene View Camera to the axis it represents (eg. top view, left view, front view, etc.)
You can also toggle the projection of scene view between perspective and orthographic (sometimes called ‘isometric’) modes by clicking the cube in the centre of the Scene Gizmo, or the text below it. Orthographic view has no perspective, and it is useful in combination with clicking one of the conical axis arms to get a front or side elevation, or a plan view.
A scene shown in perspective mode (left) and orthographic mode (right)
The same scene viewed in top and front view, in orthographic mode
Вы можете нажать на любую из ручек для привязки камеры к этому направлению. Щелчок по центру гизмо сцены или по тексту под ним будет переключать между режимами изометрической и перспективной проекции. Вы также всегда можете кликнуть по центру гизмо сцены с зажатым Shift для получения “хорошей” перспективной проекции с углом, который смотрит на сцену со стороны и немного сверху.
Важно отметить, что в 2D режиме гизмо сцены не отображается, потому что вид представлен только в XY плоскости.
Жесты в Mac на трекпаде
В Mac с трекпадом, можно тянуть двумя пальцами для масштабирования вида.
Также можно использовать три пальца для симуляции эффекта клика на стрелки гизмо сцены: тянуть вверх, влево, вправо или вниз для привязки к соответствующему направлению камеры Scene View. В OSX 10.7 “Lion” может потребоваться изменить настройки трекпада чтобы включить эту возможность:
Camera
Камеры являются устройствами, которые захватывают и отображают мир игроку. Путем настройки и манипулирования камерами, вы можете сделать презентацию своей игры поистине уникальной. Вы можете иметь неограниченное количество камер в сцене. Вы можете настроить рендеринг камерами в любом порядке, на любом месте экрана, либо только в определенных частях экрана.
Свойство: | Функция: |
---|---|
Clear Flags | Определяет, какие части экрана будут очищены. Это удобно при использовании нескольких камер для отрисовки разных элементов игры. |
Background | Цвет, применяемый для фона после отрисовки всех элементов, в случае отсутствия скайбокса. |
###Маска отрезания | Включение или исключение слоёв объектов на рендер этой камерой. Назначение слоёв объектам производится через Inspector. |
Projection | Переключает способность камеры симулировать перспективу. |
X | Камера будет рисовать объекты в перспективе. |
X | Camera will render objects uniformly, with no sense of perspective. NOTE: Deferred rendering is not supported in Orthographic mode. Forward rendering is always used. |
Size (когда выбран ортографический режим) | Размер зоны видимости камеры для ортографического режима. |
Field of view (когда выбран режим перспективы) | Ширина угла обзора камеры, измеряется в градусах по локальной оси Y. |
Physical Camera | Tick this box to enable the Physical Camera properties for this camera. When the Physical Camera properties are enabled, Unity calculates the Field of View using the properties that simulate real-world camera attributes: Focal Length, Sensor Size, and Lens Shift. Physical Camera properties are not visible in the Inspector until you tick this box. |
Focal Length | Set the distance, in millimeters, between the camera sensor and the camera lens. Lower values result in a wider Field of View, and vice versa. When you change this value, Unity automatically updates the Field of View property accordingly. |
Sensor Type | Specify the real-world camera format you want the camera to simulate. Choose the desired format from the list. When you choose a camera format, Unity sets the the Sensor Size > X and Y properties to the correct values automatically. If you change the Sensor Size values manually, Unity automatically sets this property to Custom. |
Sensor Size | Set the size, in millimeters, of the camera sensor. Unity sets the X and Y values automatically when you choose the Sensor Type. You can enter custom values if needed. |
X | The width of the sensor. |
Y | The height of the sensor. |
Lens Shift | Shift the lens horizontally or vertically from center. Values are multiples of the sensor size; for example, a shift of 0.5 along the X axis offsets the sensor by half its horizontal size. You can use lens shifts to correct distortion that occurs when the camera is at an angle to the subject (for example, converging parallel lines). Shift the lens along either axis to make the camera frustum oblique. |
X | The horizontal sensor offset. |
Y | The vertical sensor offset. |
Gate Fit | Options for changing the size of the resolution gate (size/aspect ratio of the game view) relative to the film gate (size/aspect ratio of the Physical Camera sensor). For further information about resolution gate and film gate, see documentation on Physical Cameras. |
Vertical | Fits the resolution gate to the height of the film gate. If the sensor aspect ratio is larger than the game view aspect ratio, Unity crops the rendered image at the sides. If the sensor aspect ratio is smaller than the game view aspect ratio, Unity overscans the rendered image at the sides. When you choose this setting, changing the sensor width (Sensor Size > X property) has no effect on the rendered image. |
Horizontal | Fits the resolution gate to the width of the film gate. If the sensor aspect ratio is larger than the game view aspect ratio, Unity overscans the rendered image on the top and bottom. If the sensor aspect ratio is smaller than the game view aspect ratio, Unity crops the rendered image on the top and bottom. When you choose this setting, changing the sensor height (Sensor Size > Y property) has no effect on the rendered image. |
Fill | Fits the resolution gate to either the width or height of the film gate, whichever is smaller. This crops the rendered image. |
Overscan | Fits the resolution gate to either the width or height of the film gate, whichever is larger. This overscans the rendered image. |
None | Ignores the resolution gate and uses the film gate only. This stretches the rendered image to fit the game view aspect ratio. |
###Clip Planes (Плоскости отреза) | Дистанция, на которой камера начинает и заканчивает рендеринг. |
X | Ближайшая точка относительно камеры, которая будет рисоваться. |
X | Дальняя точка относительно камеры, которая будет рисоваться. |
Viewport Rect | Four values that indicate where on the screen this camera view will be drawn. Measured in Viewport Coordinates (values 0–1). |
X | Начальная позиция области по горизонтали вида камеры, который будет рисоваться. |
Y | Начальная позиция области по вертикали, где вид камеры будет рисоваться. |
W (Ширина) | Ширина вида камеры на экране. |
H (Высота) | Высота вида камеры на экране. |
Depth | Позиция камеры в очереди отрисовки. Камеры с большим значением будут нарисованы поверх камер с меньшим значением. |
###Способ рендера | Опции для определения методов рендеринга для камеры. |
X | Камера использует метод рендеринга, установленный в Player Settings. |
Вершинное освещение | Все объекты рисующиеся этой камерой будут рендериться как Vertex-Lit-объекты. |
X | Все объекты будут рендериться с одним проходом на материал. |
Deferred Lighting (только в Unity Pro) | Все объекты будут рендериться сначала без освещения, а затем будет произведён рендер освещения для всех объектов разом, в конце очереди рендеринга. |
Target Texture | Ссылка на Render Texture, которая будет содержать результат рендеринга камеры. Назначение этой ссылки отключает способность камеры рендерить на экран. |
Occlusion Culling | Enables High Dynamic Range rendering for this camera. See Occlusion Culling for details |
Allow HDR | Enables High Dynamic Range rendering for this camera. See High Dynamic Range Rendering for details. |
Allow MSAA | Enables multi sample antialiasing for this camera. |
Allow Dynamic Resolution | Enables Dynamic Resolution rendering for this camera. See Dynamic Resolution for details. |
Target Display | Defines which external device to render to. Between 1 and 8. |
Детали
Камеры очень важны для демонстрации вашей игры игроку. Они могут быть изменены, заскриптованы, наследованы для получения различных визуальных эффектов. Для паззла вы можете сделать камеру статичной и охватывающей обзором весь паззл. Для шутера от первоого лица вы можете сделать камеру дочерней по отношению к игроку и разместить её на уровне глаз персонажа. Для гоночный игры вы можете закрепить камеру позади автомобиля и заставить её следовать за ним.
Вы можете создать несколько камер и назначить каждой свою глубину(Depth). Камеры будут отрисовываться от низшей глубины до высшей глубины. Другими словами, камера с Depth 2 будет отрисована поверх камеры с Depth 1. Вы можете настроить значение свойства Normalized View Port Rectangle для изменения позиции и размера изображения с камеры на экране, например для создания нескольких экранов в одном, или для создания зеркала заднего вида.
Способ рендера
Unity supports different rendering paths. You should choose which one you use depending on your game content and target platform / hardware. Different rendering paths have different features and performance characteristics that mostly affect lights and shadows. The rendering path used by your Project is chosen in the Player settings. Additionally, you can override it for each Camera.
См. способы рендеринга для получения всех подробностей.
Clear Flags
Каждая камера хранит информацию о цвете и глубине, когда рендерит свой вид. По умолчанию, незаполненные части экрана, будут показаны в виде скайбокса. При использовании нескольких камер, каждая камера будет иметь свои буферы цвета и глубины, заполняемые при каждом рендеринге. Каждая камера будет рендерить то, что видно с её ракурса, а путем изменения настройки Clear Flags можно выбрать набор буферов, которые будут обновлены (очищены), во время рендеринга. Это осуществляется, выбором одного из четырёх вариантов:
Skybox
This is the default setting. Any empty portions of the screen will display the current Camera’s skybox. If the current Camera has no skybox set, it will default to the skybox chosen in the Lighting Window (menu: Window > Rendering > Lighting Settings). It will then fall back to the Background Color. Alternatively a Skybox component can be added to the camera. If you want to create a new Skybox, you can use this guide.
Solid color
Любые пустые части экрана будут отображать текущий фоновый цвет (Background Color) камеры.
Только глубина
The gun is drawn last, after clearing the depth buffer of the cameras before it
Не очищать
В этом режиме не очищаются ни цвет, ни буфер глубины. В результате каждый кадр рисуется поверх другого, из-за чего получится эффект размытия. Это обычно не используется в играх, и лучше использовать вместе с пользовательским шейдером.
Note that on some GPUs (mostly mobile GPUs), not clearing the screen might result in the contents of it being undefined in the next frame. On some systems, the screen may contain the previous frame image, a solid black screen, or random colored pixels.
Clip Planes (Плоскости отреза)
Near и Far Clip Plane — свойства, определяющие, где начинается и заканчивается область отрисовки камеры. Эта область ограничивается плоскостями, перпендикулярными направлению камеры, и находившимися в этих позициях относительно неё. Near Plane — это ближайшая позиция, а Far Plane — дальняя позиция.
Плоскости также определяют точность буфера глубины. Для обеспечения наивысшей точности вам следует отодвинуть Near Plane так далеко, насколько возможно.
Обратите внимание, что эти плоскости вместе определяют поле зрения камеры, которое известно как фрустум. Unity гарантирует, что объекты, полностью находящиеся за пределами фрустума, не будут отображаться. Это называется Frustum Culling и это срабатывает независимо от Occlusion Culling.
Из соображений производительности вы можете прекращать отрисовку мелких объектов раньше, чем отрисовку прочих. Для этого поместите их в separate layer и настройте дистанцию обрезки для этого слоя, используя функцию Camera.layerCullDistances.
Маска отрезания
Culling Mask используется для выборочного рендеринга групп объектов посредством использования слоёв. Больше информации об использовании слоёв можно найти здесь.
Normalized Viewport Rectangles
Normalized Viewport Rectangles предназначено для определения части экрана, на которой будет отрисовано изображение с камеры. Вы можете, к примеру, вставить изображение карты в нижний правый угол экрана, а вид с камеры на выпущенной ракете — в верхний левый угол. Немного поработав над дизайном, используя Viewport Rectangle, вы сможете создать кое-какие уникальные системы.
Очень просто создать раздельный экран для двух игроков, используя Normalized Viewport Rectangle. После создания двух камер, установите обеим камерам свойство H в значение 0.5 и для одной из них свойство Y в значение 0.5, а для другой — в значение 0. В результате, первая камера будет рисовать изображение в верхней половине экрана, а вторая камера — в нижней половине экрана.
Two-player display created with the Normalized Viewport Rectangle property
Orthographic
Переключив камеру в ортографичесий (Orthographic) режим, вы устраните всю перспективу из отрисовываемого ей изображения. Это полезно для создания двумерных и изометрических игр.
Заметьте, что туман отрисовывается при этом равномерно, так что может выглядеть не так, как вы ожидали. Прочтите справко по компоненту Render Settings для получения подробностей.
Perspective camera.
Orthographic camera. Objects do not get smaller with distance here!
Текстура рендера
Эта возможность доступна лишь в расширенных лицензиях Unity. Она позволяет отрисовывать изображенеи с камеры в текстуру (Texture), которая может быть применена к другому игровому объекту. Это делает простым создание спортивной арены с видеомониторами, камеры наблюдения, отражений и т.д.
A Render Texture used to create a live arena-cam
Target display
A camera has up to 8 target display settings. The camera can be controlled to render to one of up to 8 monitors. This is supported only on PC, Mac and Linux. In Game View the chosen display in the Camera Inspector will be shown.