using System.Collections; using System.Collections.Generic; using UnityEngine; using Cinemachine; using DG.Tweening; public class CMvCamController : MonoBehaviour { public CinemachineVirtualCamera vcamera; public CinemachineBrain cmBrain; private CinemachinePOV vcameraPOV; private ICinemachineCamera icCam; float scroll; float view; float targetFOV; [SerializeField] float minFOV; [SerializeField] float maxFOV; [SerializeField] float scrollVolume; // Start is called before the first frame update void Start() { vcameraPOV = vcamera.GetCinemachineComponent(); } // Update is called once per frame void Update() { MouseEvent(); } private void MouseEvent() { icCam = cmBrain.ActiveVirtualCamera; GameObject vCamObj = icCam.VirtualCameraGameObject; if (vCamObj != this.gameObject) // 自分のカメラがアクティブのときのみ作動 { return; } else if((Input.GetMouseButtonDown(2))) { return; } else { scroll = Input.GetAxis("Mouse ScrollWheel"); if (scroll != 0.0f) { view = vcamera.m_Lens.FieldOfView - scroll * scrollVolume; targetFOV = Mathf.Clamp(value: view, min: minFOV, max: maxFOV); SetFOV(targetFOV); } } } public void SetFOV(float fov) { DOTween.To( () => vcamera.m_Lens.FieldOfView, num => vcamera.m_Lens.FieldOfView = num, fov, 1.0f ); } }