はじめに
Cinemachineの入力操作を一時的に無効にする方法を紹介します
環境はUnity 2021.3.25f1です
Universal Render Pipeline を使用しています。
旧入力システムの場合
下記クラスのIsInputを変更することで入力を無効にすることができます。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CmaeraManager : MonoBehaviour { public bool IsInput; void Start() { Cinemachine.CinemachineCore.GetInputAxis = GetAxisCustom; } public float GetAxisCustom(string axisName) { if (!IsInput) return 0; if(!string.IsNullOrEmpty(axisName)) { return Input.GetAxis(axisName); } return 0; } }
参考
新入力システム(InputSystem)の場合
何かしらの方法でCinemachineInputProviderのenabledをfalseにすれば入力を無効にすることができます
using System.Collections; using System.Collections.Generic; using UnityEngine; using Cinemachine; public class Test : MonoBehaviour { public CinemachineInputProvider InputProvider; public bool IsInput; void Update() { InputProvider.enabled = IsInput; } }