Minor - Add Assets And Support Dual Screen
This commit is contained in:
61
Assets/MobileDepthWater/Scripts/CameraDepthSlider.cs
Normal file
61
Assets/MobileDepthWater/Scripts/CameraDepthSlider.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
namespace Assets.MobileOptimizedWater.Scripts
|
||||
{
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class CameraDepthSlider : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Slider slider;
|
||||
[SerializeField] private Transform cameraTransform;
|
||||
|
||||
[Space]
|
||||
[SerializeField] private float minDistance;
|
||||
[SerializeField] private float maxDistance;
|
||||
|
||||
[Space]
|
||||
[SerializeField] private float scrollDelta;
|
||||
[SerializeField] private float scrollSpeed;
|
||||
|
||||
private Vector3 cameraDirectionToRoot;
|
||||
|
||||
private float currentScrollSpeed;
|
||||
private float currentValue;
|
||||
|
||||
public void Awake()
|
||||
{
|
||||
cameraDirectionToRoot = cameraTransform.localPosition.normalized;
|
||||
|
||||
slider.value = 0.2f;
|
||||
OnSliderValueChanged();
|
||||
}
|
||||
|
||||
public void OnSliderValueChanged()
|
||||
{
|
||||
UpdateDepthPosition(slider.value);
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
public void Update()
|
||||
{
|
||||
if (Input.GetKey(KeyCode.W))
|
||||
{
|
||||
currentScrollSpeed = Mathf.Lerp(currentScrollSpeed, currentScrollSpeed + scrollDelta, Time.deltaTime * scrollSpeed);
|
||||
UpdateDepthPosition(Mathf.Lerp(currentValue, currentValue + currentScrollSpeed, Time.deltaTime * scrollSpeed));
|
||||
}
|
||||
else if (Input.GetKey(KeyCode.S))
|
||||
{
|
||||
currentScrollSpeed = Mathf.Lerp(currentScrollSpeed, currentScrollSpeed + scrollDelta, Time.deltaTime * scrollSpeed);
|
||||
UpdateDepthPosition(Mathf.Lerp(currentValue, currentValue - currentScrollSpeed, Time.deltaTime * scrollSpeed));
|
||||
}
|
||||
|
||||
currentScrollSpeed = 0f;
|
||||
}
|
||||
#endif
|
||||
|
||||
private void UpdateDepthPosition(float value)
|
||||
{
|
||||
currentValue = Mathf.Clamp(value, 0f, 1f);
|
||||
cameraTransform.localPosition = cameraDirectionToRoot * Mathf.Lerp(minDistance, maxDistance, currentValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user