Приближение камеры с помощью колёсика мышки

Нужно реализовать приближение камеры с помощью колёсика мышки до определённого уровня, но я не могу понять, как это сделать. Что мне нужно добавить в мой скрипт?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraMove : MonoBehaviour
{
    public float horizontalInput;
    public float verticalInput;
    private float speed = 30.0f;

    void Update()
    {
        horizontalInput = Input.GetAxis("HorizontalUI");
        verticalInput = Input.GetAxis("VerticalUI");
        transform.Translate(Vector3.forward * verticalInput * speed * Time.deltaTime);
        transform.Translate(Vector3.right * horizontalInput * speed * Time.deltaTime);
    }
}

Ответы (1 шт):

Автор решения: Максим Фисман

Предполагая, что камера ортографическая (2Д), ее можно менять с помощью соответствующего свойства:

public float ZoomSpeed;

private Camera MainCamera;

private void Start () {
    MainCamera = GetComponent<Camera>();
}
private void Update () {
    if (Input.mouseScrollDelta.y != 0) 
        mainCamera.ortographicSize += Input.mouseScrollDelta * ZoomSpeed;
}

Если же камера "перспективная" (3Д), то ее можно приближать вашим способом (это именно приближение камеры, а не изменение угла обзора, как в первом случае) методов Translate.

Используемые функции и свойства:

  • Input.mouseScrollDelta(Vector2) - изменение поворота колеса мыши. Берем y, то есть вращение по вертикали. Можно брать и по x для горизонтального вращения колесика: Modern macOS uses double finger movement up and down on the trackpad to emulate center scrolling.
  • Camera.ortigraphicSize - полуразмер камеры (для ортографического режима).
  • transform.Translate(Vector3 translation) - передвигает объект в направлении указанном вектором translation на расстояние, равное модулю этого вектора.
→ Ссылка