playMaker

Author Topic: 20$ on cash app for the 1st person who can help with this noise Script?  (Read 568 times)

fungeonGames

  • Playmaker Newbie
  • *
  • Posts: 1
     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;

        }

    }
}
« Last Edit: December 12, 2023, 05:30:08 PM by fungeonGames »

djaydino

  • Administrator
  • Hero Member
  • *****
  • Posts: 7615
    • jinxtergames
Re: 20$ on cash app for the 1st person who can help with this noise Script?
« Reply #1 on: December 13, 2023, 07:33:00 PM »
Hi.

1st add Using Cinemachine;

replace
Code: [Select]
public Cinemachine.CinemachineVirtualCamera vcam;
like this :
Code: [Select]
  [RequiredField]
        [ObjectType(typeof(CinemachineVirtualCamera))]
        public FsmObject cinemachineVirtualCamera;

then

Code: [Select]
CinemachineVirtualCamera vCam = (CinemachineVirtualCamera)CinemachineVirtualCamera.Value;