Компонент Camera в Unity

В Unity Camera — важнейший компонент, определяющий, что игрок видит в игровом мире. Компонент камеры можно добавить к любому игровому объекту и он отвечает за визуализацию сцены с определенной точки зрения. Положение и ориентация камеры определяют, какие части сцены видны игроку и как они отображаются.

Типы Camera в Unity

Unity предоставляет несколько различных типов камер, которые можно использовать для достижения различных визуальных эффектов и перспектив в игре. Наиболее часто используемой камерой является компонент «Camera», который обеспечивает простую перспективную проекцию 3D-сцены. Этот компонент идеально подходит для большинства игр, так как обеспечивает знакомую, интуитивно понятную перспективу, к которой привыкли игроки.

Другим типом камеры в Unity является «Orthographic Camera», которая обеспечивает двухмерную перспективу, когда объекты не становятся меньше по мере их удаления от камеры. Этот тип камеры идеально подходит для создания 2D-игр или для создания специальных визуальных эффектов, не зависящих от традиционной перспективы.

В дополнение к основным компонентам Camera Unity также предоставляет несколько расширенных функций для управления камерой в вашей игре. Например, вы можете использовать свойство Viewport компонента Camera, чтобы указать, какая часть вида камеры должна отображаться на экране. Это полезно для создания игр с разделенным экраном, когда несколько игроков используют один и тот же экран, или для создания специальных визуальных эффектов, таких как картинка в картинке.

Еще одной важной особенностью камеры в Unity является возможность управления движением и ориентацией камеры в режиме реального времени. Это делается с помощью сценариев, и вы можете использовать эту функцию для создания широкого спектра эффектов камеры и взаимодействий. Например, вы можете использовать сценарии для создания камеры, которая следует за игроком, когда он перемещается по игровому миру, или для создания камеры, которая перемещается в определенные места в ответ на действия пользователя.

Помимо управления самой камерой, вы также можете использовать функции постобработки Unity для дальнейшего улучшения внешнего вида вашей игры. Например, вы можете использовать стек постобработки для применения к вашей сцене таких фильтров, как цветность, глубина резкости и цветокоррекция. Это позволяет создать более захватывающий и визуально привлекательный игровой мир.

Пример скрипта

Вот пример простого скрипта камеры в Unity, который следует за игровым объектом игрока:

using UnityEngine;

public class FollowCamera : MonoBehaviour
{
    public Transform target; // The target to follow
    public float smoothSpeed = 0.125f; // The speed of the camera movement
    public Vector3 offset; // The offset from the target position

    void LateUpdate()
    {
        Vector3 desiredPosition = target.position + offset;
        Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
        transform.position = smoothedPosition;
    }
}

В этом коде у нас есть общедоступная переменная Transform с именем target, которая представляет игровой объект, которому мы хотим следовать. У нас также есть общедоступная переменная Vector3 с именем offset, которая представляет смещение от положения цели и общедоступная переменная float с именем smoothSpeed, которая определяет, насколько плавно камера движется к цели.

В методе LateUpdate мы вычисляем желаемое положение камеры, добавляя положение цели к смещению. Затем мы используем метод Vector3.Lerp для плавного перемещения камеры в нужное положение с течением времени. Метод LateUpdate используется здесь вместо метода Update, потому что мы хотим, чтобы движение камеры происходило после обработки всех других обновлений, чтобы обеспечить точность положения цели.

Чтобы использовать этот скрипт, просто прикрепите его к игровому объекту камеры в вашей сцене и установите целевую переменную для игрового объекта, которому вы хотите следовать. Вы можете настроить переменные offset и smoothSpeed, чтобы изменить поведение камеры в соответствии с вашими потребностями.

Доступные свойства

СвойствоОписание
Clear FlagsDetermines which parts of the screen will be cleared. This is handy when using multiple Cameras to draw different game elements.
BackgroundThe color applied to the remaining screen after all elements in view have been drawn and there is no skybox.
Culling Mask
Includes or omits layers of objects to be rendered by the Camera. Assigns layers to your objects in the Inspector.
ProjectionToggles the camera’s capability to simulate perspective.
        PerspectiveCamera will render objects with perspective intact.
        OrthographicCamera will render objects uniformly, with no sense of perspective. NOTE: Deferred rendering is not supported in Orthographic mode. Forward rendering
 is always used.
Size (when Orthographic is selected)The viewport
 size of the Camera when set to Orthographic.
FOV Axis (when Perspective is selected)Field of view axis.
        HorizontalThe Camera uses a horizontal field of view axis.
        VerticalThe Camera uses a vertical field of view axis.
Field of view (when Perspective is selected)The Camera’s view angle, measured in degrees along the axis specified in the FOV Axis drop-down.
Physical CameraTick 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 LengthSensor Size, and Lens Shift.

Physical Camera properties are not visible in the Inspector until you tick this box.
        Focal LengthSet 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 TypeSpecify 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 SizeSet 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.
                XThe width of the sensor.
                YThe height of the sensor.
        Lens ShiftShift 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.
                XThe horizontal sensor offset.
                YThe vertical sensor offset.
        Gate FitOptions 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).
                VerticalFits 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.
                HorizontalFits 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.
                FillFits the resolution gate to either the width or height of the film gate, whichever is smaller. This crops the rendered image.
                OverscanFits the resolution gate to either the width or height of the film gate, whichever is larger. This overscans the rendered image.
                NoneIgnores the resolution gate and uses the film gate only. This stretches the rendered image to fit the game view aspect ratio.
Clipping PlanesDistances from the camera to start and stop rendering.
        NearThe closest point relative to the camera that drawing will occur.
        FarThe furthest point relative to the camera that drawing will occur.
Viewport RectFour values that indicate where on the screen this camera view will be drawn. Measured in Viewport Coordinates (values 0–1).
        XThe beginning horizontal position that the camera view will be drawn.
        YThe beginning vertical position that the camera view will be drawn.
        W (Width)Width of the camera output on the screen.
        H (Height)Height of the camera output on the screen.
DepthThe camera’s position in the draw order. Cameras with a larger value will be drawn on top of cameras with a smaller value.
Rendering Path
Options for defining what rendering methods will be used by the camera.
        Use Player SettingsThis camera will use whichever Rendering Path is set in the Player Settings.
        Vertex LitAll objects rendered by this camera will be rendered as Vertex-Lit objects.
        ForwardAll objects will be rendered with one pass per material.
        Deferred LightingAll objects will be drawn once without lighting, then lighting of all objects will be rendered together at the end of the render queue. NOTE: If the camera’s projection mode is set to Orthographic, this value is overridden, and the camera will always use Forward rendering.
Target TextureReference to a Render Texture that will contain the output of the Camera view. Setting this reference will disable this Camera’s capability to render to the screen.
Occlusion Culling
Enables Occlusion Culling for this camera. Occlusion Culling means that objects that are hidden behind other objects are not rendered, for example if they are behind walls.
Allow HDREnables High Dynamic Range rendering for this camera.
Allow MSAAEnables multi sample antialiasing
 for this camera.
Allow Dynamic ResolutionEnables Dynamic Resolution rendering for this camera.
Target DisplayDefines which external device to render to. Between 1 and 8.
Урок 4 – Объект Main Camera в Unity (+ Новый Интерфейс Unity 2019.3.0f5)Урок 4 – Объект Main Camera в Unity (+ Новый Интерфейс Unity 2019.3.0f5)

В заключение отметим, что камера — важнейший компонент Unity, определяющий, что игрок видит в игровом мире. Благодаря различным типам камер и расширенным функциям вы можете создавать разнообразные визуальные эффекты и перспективы, а также управлять движением и ориентацией камеры в режиме реального времени. Создаете ли вы простую 2D-игру или сложный 3D-мир, компонент Camera — важный инструмент для создания игры в Unity.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

17 − один =

Прокрутить вверх