Изменение размера камеры Cinemachine в Unity: подробное руководство с примерами кода

В Unity Cinemachine — мощный инструмент для создания систем динамических камер. Одним из распространенных требований является программное изменение размера камеры Cinemachine. В этой статье блога мы рассмотрим несколько способов добиться этого с помощью скриптов в Unity. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять и реализовать их в своих проектах.

Метод 1: изменение ортогонального размера
Виртуальные камеры Cinemamachine могут иметь перспективную или ортогональную проекцию. Если ваша камера Cinemachine настроена на ортогональную проекцию, вы можете настроить ее размер с помощью свойства orthographicSize. Вот пример:

using Cinemachine;
using UnityEngine;
public class CameraSizeChanger : MonoBehaviour
{
    public CinemachineVirtualCamera virtualCamera;
    public float newSize = 5f;
    private void Start()
    {
        virtualCamera.m_Lens.OrthographicSize = newSize;
    }
}

Метод 2: изменение поля зрения (FOV)
Если ваша камера Cinemachine настроена на перспективную проекцию, вы можете изменить ее размер, настроив свойство поля зрения (FOV). Вот пример:

using Cinemachine;
using UnityEngine;
public class CameraSizeChanger : MonoBehaviour
{
    public CinemachineVirtualCamera virtualCamera;
    public float newFOV = 60f;
    private void Start()
    {
        virtualCamera.m_Lens.FieldOfView = newFOV;
    }
}

Метод 3: изменение настроек объектива
Cinemachine также позволяет изменять другие параметры объектива камеры, такие как фокусное расстояние и размер сенсора. Вот пример изменения фокусного расстояния:

using Cinemachine;
using UnityEngine;
public class CameraSizeChanger : MonoBehaviour
{
    public CinemachineVirtualCamera virtualCamera;
    public float newFocalLength = 50f;
    private void Start()
    {
        virtualCamera.m_Lens.FocalLength = newFocalLength;
    }
}

Метод 4: анимация размера камеры
Вы можете создавать динамические изменения размера камеры, анимируя свойства камеры Cinemachine с течением времени. Вот пример использования анимации временной шкалы:

using Cinemachine;
using UnityEngine;
using UnityEngine.Playables;
public class CameraSizeAnimator : MonoBehaviour
{
    public CinemachineVirtualCamera virtualCamera;
    public PlayableDirector timeline;
    private void Start()
    {
        timeline.stopped += OnTimelineStopped;
    }
    private void OnTimelineStopped(PlayableDirector director)
    {
        virtualCamera.m_Lens.OrthographicSize = 10f;  // Set the new size after the timeline ends
    }
}

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