Files
AZTECH_WB/Assets/Scripts/UI/SettingPanel/SliderInputField.cs
정영민 986886a260 [정영민] 아즈텍 프로젝트 OCTOPUS TWIN 템플릿 적용
26.02.26
- XRLib 추가 및 적용
- 아즈텍 프로젝트 OCTOPUS TWIN 템플릿 적용
2026-02-26 17:26:55 +09:00

53 lines
1.3 KiB
C#

using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace AZTECHWB.UI
{
public class SliderInputField : MonoBehaviour
{
private bool isUpdating = false;
public TMP_InputField inputField;
public Slider Slider;
public void SetSliderInputField()
{
inputField = transform.GetComponentInChildren<TMP_InputField>(true);
Slider = transform.GetComponentInChildren<Slider>(true);
Slider.onValueChanged.AddListener(OnSliderValueChanged);
inputField.onValueChanged.AddListener(OnInputFieldValueChanged);
}
public void SetText(string value)
{
inputField.text = value;
}
void OnSliderValueChanged(float value)
{
if (isUpdating) return;
var newValue = Math.Truncate(value * 10f) / 10f;
isUpdating = true;
inputField.text = newValue.ToString();
isUpdating = false;
}
void OnInputFieldValueChanged(string value)
{
if (isUpdating) return;
isUpdating = true;
if (float.TryParse(value, out float newValue))
{
Slider.value = newValue;
}
isUpdating = false;
}
}
}