Project_WL/Assets/Script/UI/Util/SliderHandleController.cs

35 lines
1018 B
C#
Raw Normal View History

2025-03-12 02:13:58 +00:00
using UnityEngine;
using UnityEngine.UI;
[ExecuteAlways]
public class SliderHandleController : MonoBehaviour
{
public Slider slider;
public RectTransform sliderRect; // 슬라이더 전체 UI
public RectTransform handle; // 핸들 RectTransform
public float offsetX = 0f; // X축 오프셋 (필요하면 조정 가능)
void Start()
{
UpdateHandlePosition();
}
void Update()
{
UpdateHandlePosition();
}
void UpdateHandlePosition()
{
// 슬라이더의 좌측(X Min)과 우측(X Max) 계산
float sliderMinX = sliderRect.rect.xMin;
float sliderMaxX = sliderRect.rect.xMax;
// 현재 슬라이더 값에 대한 핸들의 X 좌표 계산
float handleX = Mathf.Lerp(sliderMinX, sliderMaxX,
(slider.value - slider.minValue) / (slider.maxValue - slider.minValue));
// 핸들 위치 업데이트
handle.anchoredPosition = new Vector2(handleX + offsetX, handle.anchoredPosition.y);
}
}