using UnityEngine; using Cinemachine; using NaughtyAttributes; namespace GameplayIngredients.Actions { [Callable("Cinemachine", "Misc/ic-cinemachine.png")] public class CinemachineSetCameraNoiseAction : ActionBase { [SerializeField] bool useLiveCamera; [SerializeField, HideIf("useLiveCamera")] CinemachineVirtualCamera targetCamera; NoiseSettings settings; public override void Execute(GameObject instigator = null) { CinemachineVirtualCamera cam = useLiveCamera ? Manager.Get().GetComponent().ActiveVirtualCamera as CinemachineVirtualCamera : targetCamera; if(cam == null) { Debug.Log("CinemachineSetCameraNoiseAction : Cannot find a suitable CinemachineVirtualCamera to set Noise to"); return; } var noise = cam.GetCinemachineComponent(); if(noise == null && settings != null) cam.AddCinemachineComponent(); noise.m_NoiseProfile = settings; } } }