Files
ChunilENG/Assets/Scripts/UI/UI_SliderInputField.cs
정영민 2dd5d814a7 update
2025-02-20 09:59:37 +09:00

56 lines
1.3 KiB
C#

using CHN;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using WI;
namespace CHN
{
public class UI_SliderInputField : UIBase
{
private bool isUpdating = false;
public TMP_InputField inputField;
public Slider Slider;
public void SetSliderInputField()
{
inputField = transform.GetComponentInChildren<TMP_InputField>();
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;
}
}
}