В 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. Поэкспериментируйте с этими методами и найдите тот, который лучше всего соответствует вашим требованиям.