Hey guys, thought I'd share this little script. I wanted to move and rotate an object using Cinemachine's noise functions. Might be a better way? But working for my purposes Code (CSharp): using UnityEngine; using Cinemachine; [RequireComponent(typeof(CinemachineBasicMultiChannelPerlin))] public sealed class CinemachineNoiseObject : MonoBehaviour { [Tooltip("Determines whether position from noise is added to the current Transform")] public bool additivePosition = false; [Tooltip("Determines whether rotation from noise is added to the current Transform")] public bool additiveRotation = false; [System.NonSerialized] private CameraState state; [System.NonSerialized] private CinemachineBasicMultiChannelPerlin noise; private void Awake() { noise = GetComponent<CinemachineBasicMultiChannelPerlin>(); } private void OnEnable() { state = CameraState.Default; } private void Update() { //get starting position and rotation state.RawPosition = transform.position; state.RawOrientation = transform.rotation; //if not additve, then remove the last correction if (!additivePosition) { state.RawPosition -= state.PositionCorrection; } if (!additiveRotation) { state.RawOrientation *= Quaternion.Inverse(state.OrientationCorrection); } //reset correction state.PositionCorrection = Vector3.zero; state.OrientationCorrection = Quaternion.identity; //apply noise noise.MutateCameraState(ref state, Time.deltaTime); transform.SetPositionAndRotation(state.CorrectedPosition, state.CorrectedOrientation); } } EDIT - don't extend from CinemachineBasicMultiChannelPerlin, otherwise this shows up in noise drop down