I want to be able to set the Vcam variable to a global gameobject in the action but it only allows me to drag a drop a gameobject into the vcam variable at the moment. What would i need to do to fix this?
using UnityEngine;
namespace HutongGames.PlayMaker.Actions.ecosystem.cinemachine
{
[ActionCategory("Cinemachine")]
[Tooltip("Allows you to adjust noise on a Cinemachine camera that has perlin noise enabled.")]
public class CinemachineNoiseAdjust : FsmStateAction
{
[CheckForComponent(typeof(Cinemachine.CinemachineVirtualCamera))]
[RequiredField]
public Cinemachine.CinemachineVirtualCamera vcam;
private Cinemachine.CinemachineBasicMultiChannelPerlin noiseChannel;
public FsmFloat Amplitude;
public FsmFloat Frequency;
public FsmBool everyFrame;
private bool goEveryFrame;
private float goAmplitude;
private float goFrequency;
public override void OnEnter()
{
goAmplitude = Amplitude.Value;
goFrequency = Frequency.Value;
goEveryFrame = everyFrame.Value;
vcam.GetCinemachineComponent<Cinemachine.CinemachineBasicMultiChannelPerlin>().m_AmplitudeGain = goAmplitude;
vcam.GetCinemachineComponent<Cinemachine.CinemachineBasicMultiChannelPerlin>().m_FrequencyGain = goFrequency;
if (!goEveryFrame)
Finish();
}
public override void OnUpdate()
{
base.OnUpdate();
if (goEveryFrame == true)
{
goAmplitude = Amplitude.Value;
goFrequency = Frequency.Value;
goEveryFrame = everyFrame.Value;
vcam.GetCinemachineComponent<Cinemachine.CinemachineBasicMultiChannelPerlin>().m_AmplitudeGain = goAmplitude;
vcam.GetCinemachineComponent<Cinemachine.CinemachineBasicMultiChannelPerlin>().m_FrequencyGain = goFrequency;
}
}
public override void Reset()
{
Amplitude = null;
Frequency = null;
vcam = null;
noiseChannel = null;
goFrequency = 0;
goAmplitude = 0;
everyFrame = false;
goEveryFrame = false;
}
}
}