我正在使用滑块,并希望控制相机的视野。我如何做到这一点,因为滑块是更新的每帧与相机的视野使用鼠标滚动?我想控制滑块以及滑块应该更新FoV使用鼠标滚动。有什么办法我能做到这两件事吗?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
ublic class CamZoom : MonoBehaviour
{
float MouseZoomSpeed = 15.0f;
float TouchZoomSpeed = 0.1f;
float ZoomMinBound = 0.1f;
float ZoomMaxBound = 120.9f;
Camera cam;
public Slider slider;
// Use this for initialization
void Start()
{
cam = GetComponent<Camera>();
}
void LateUpdate()
{
float scroll = -Input.GetAxis("Mouse ScrollWheel");
Zoom(scroll, MouseZoomSpeed);
slider.value = cam.fieldOfView;
if(cam.fieldOfView < ZoomMinBound)
{
cam.fieldOfView = 0.1f;
}
else
if(cam.fieldOfView > ZoomMaxBound )
{
cam.fieldOfView = 179.9f;
}
}
void Zoom(float deltaMagnitudeDiff, float speed)
{
cam.fieldOfView += deltaMagnitudeDiff * speed;
// set min and max value of Clamp function upon your requirement
cam.fieldOfView = Mathf.Clamp(cam.fieldOfView, ZoomMinBound, ZoomMaxBound);
}
}发布于 2020-07-03 08:10:48
是的,您可以使用Slider.onValueChanged来反馈值,也可以在鼠标滚动后将值反馈给滑块。
public class CamZoom : MonoBehaviour
{
// I would make these adjustable via the Inspector
[SerializeField] float MouseZoomSpeed = 15.0f;
[SerializeField] float TouchZoomSpeed = 0.1f;
[SerializeField] float ZoomMinBound = 0.1f;
[SerializeField] float ZoomMaxBound = 179.9f;
[SerializeField] Camera cam;
public Slider slider;
// Use this for initialization
void Start()
{
if(!cam) cam = GetComponent<Camera>();
slider.minValue = ZoomMinBound;
slider.maxValue = ZoomMaxBound;
slider.value = cam.fieldOfView;
slider.onValueChanged.AddListener(OnSliderValueChanged);
}
private void OnSliderValueChanged(float newValue)
{
cam.fieldOfView = newValue;
}
void LateUpdate()
{
var scroll = -Input.GetAxis("Mouse ScrollWheel");
Zoom(scroll, MouseZoomSpeed);
slider.value = cam.fieldOfView;
}
void Zoom(float deltaMagnitudeDiff, float speed)
{
cam.fieldOfView += deltaMagnitudeDiff * speed;
cam.fieldOfView = Mathf.Clamp(cam.fieldOfView, ZoomMinBound, ZoomMaxBound);
}
}https://stackoverflow.com/questions/62710855
复制相似问题