Unity3d UI에서 기본적으로 제공하는 Slider를 기본적으로 제공합니다. 슬라이더는 웹 서비스나 다양한 플랫폼에서 프로그램을 사용했다면 한 번쯤은 봤을 것입니다. 기다란 막대가 있고 막대 안에는 동그란 혹은 네모난 버튼이 있어서 그 버튼을 누른 상태로 끌어다가 옮기면 색상이나 특정 수치를 바꿔봤을 것입니다. 슬라이더는 막대 안에 있는 버튼을 드래그해서 버튼의 상대적인 위치를 통해 값을 얻을 수 있습니다. 예를 들어 비디오 플레이어의 시간 바를 움직이거나 소리의 음량을 슬라이더로 조절할 수 있습니다. 슬라이더는 기본적으로 최솟값과 최댓값을 가지고 있는데 변수 화가 잘 되어 있습니다. 이 변수를 얻거나 설정할 수 있습니다. 슬라이더 함수는 기본적으로 float 값을 매개변수로 사용하는데 wholeNumbers라는 변수를 통해서 float 값이 아닌 숫자 형태(int)로 값을 반환할 수도 있습니다. 숫자를 이용한 서비스라면 이 기능은 매우 유용할 것입니다.
C# (UNITY 3D)
가운데에 있는 슬라이더를 클릭한 상태로 움직이면 초기 설정한 0~100 사이의 값을 얻습니다. Get 버튼을 누르면 현재 슬라이더가 위치해 있는 값을 얻을 수 있습니다.
using UnityEngine.UI;
UI의 Slider와 Button을 사용하기 위해 UnityEngine.UI가 필요합니다.
슬라이더를 움직였을 때 값을 표시할 Text와 Get 버튼을 눌렀을 때의 슬라이더 값을 표시할 Text, 기능을 넣어줄 Slider와 Button을 할당해 줍니다.
public Text message;
public Text result;
public Slider slider;
public Button button;
private int min = 0;
private int max = 100;
void Start()
{
SetFunction_UI();
}
//CodeFinder
//From https://codefinder.janndk.com/
private void SetFunction_UI()
{
//Reset
ResetFunction_UI();
button.onClick.AddListener(Function_Button);
slider.onValueChanged.AddListener(Function_Slider);
}
private void Function_Button()
{
result.text = slider.value.ToString();
Debug.LogError("Slider Result!\n" + slider.value);
}
private void Function_Slider(float _value)
{
message.text = _value.ToString();
Debug.Log("Slider Dragging!\n" + _value);
}
private void ResetFunction_UI()
{
button.onClick.RemoveAllListeners();
slider.onValueChanged.RemoveAllListeners();
slider.maxValue = max;
slider.minValue = min;
slider.wholeNumbers = true;
}
변수(variable)
message : 슬라이더를 드래그해서 움직였을 때 값을 메시지로 표시(Text)
result : Get 버튼을 눌렀을 때 슬라이더의 현재 값을 표시(Text)
slider : 기능을 할당할 슬라이더(Slider)
button : 기능을 할당할 버튼(Button)
min : 슬라이더의 최솟값 (int)
max : 슬라이더의 최댓값 (int)
함수(function)
SetFunction_UI : 기존에 있던 UI 관련 기능은 모두 삭제하고 버튼과 슬라이더에 기능을 할당 (초기 UI의 기능을 할당해야 할 타이밍에 삽입)
Function_Slider : 슬라이더를 드래그했을 때 함수 발동, 반환 값은 float 값을 반환
Function_Button : 버튼을 눌렀을 때 함수 발동
ResetFunction_UI : 슬라이더와 버튼 기능 전체 삭제하고 슬라이더의 maxValue(최댓값), minValue(최솟값), wholeNumbers(숫자로만 표시할지 여부) 설정
UI / Slider / Button / AddListener/ wholeNumbers / RemoveAllListeners / onValueChanged / OnClick / min / max
'Unity3D > C#' 카테고리의 다른 글
UI InputField 기본 기능 할당 in Script (contentType/lineType) (0) | 2020.10.21 |
---|---|
UI Dropdown 기능 할당/삭제 (이미지,텍스트 옵션 추가) in Script (0) | 2020.10.21 |
UI Button / Toggle에 기능 할당과 삭제 in Script (0) | 2020.10.14 |
시스템 시간을 이용한 프레임 영향이 없는 타이머(Timer) 스크립트 (1) | 2020.10.14 |
유니티 시간(Time.time)을 이용한 타이머 (Timer) 스크립트 (0) | 2020.10.12 |