【Unity】Cinemachineの入力操作を一時的に無効にする

はじめに

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;
    }
}

参考

tsubakit1.hateblo.jp

新入力システム(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;
    }
}