Hello there,
I’m trying to change camera’s fov when a UI canvas button is pressed, and reset the fov to a default value when released.
The code works with keyboard inputs, but not with the UI button.
So far I tried to attach the script’s funtion to button’s “onClick” function. It doesn’t work.
I also tried to reference the button in the script, and add a listener to it. Not working.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ButtonInputs : MonoBehaviour
{
Camera cam;
public float defaultFov;
public float zoomedFov;
public float altZoomedFov;
public Button leftButton;
public Button rightButton;
void Start ()
{
cam = Camera.main;
Button btn1 = leftButton.GetComponent<Button>();
Button btn2 = rightButton.GetComponent<Button>();
cam.fieldOfView = defaultFov;
btn1.onClick.AddListener(ZoomA);
btn2.onClick.AddListener(ZoomB);
}
void LateUpdate()
{
cam.fieldOfView = defaultFov;
if(Input.GetKey(KeyCode.Z))
{
ZoomA();
}
else if(Input.GetKey(KeyCode.X))
{
ZoomB();
}
}
public void ZoomA()
{
cam.fieldOfView = zoomedFov;
}
public void ZoomB()
{
cam.fieldOfView = altZoomedFov;
}
}
Any idea on how to get the camera to react at UI buttons?
Thank you in advance