Programing/Unity(C#)
[Unity] AddListener로 이벤트 추가하기
hye3193
2024. 3. 17. 00:23
기본적으로 유니티 인스펙터 창에서
위와 같은 창에서 이벤트를 연결할 수 있으나, 좀 더 편하게 스크립트 상에서 연결을 해 볼 것이다
Button 컴포넌트의 OnClick 뿐만 아니라 Slider의 OnValueChanged 등에도 같은 방식으로 연결이 가능하다
public class ClickExample : MonoBehaviour
{
public Button yourButton;
void Start()
{
Button btn = yourButton.GetComponent<Button>();
btn.onClick.AddListener(TaskOnClick);
}
void TaskOnClick()
{
Debug.Log("You have clicked the button!");
}
}
유니티 공식 문서 상의 예제이다
Button 컴포넌트를 받아온 뒤, AddListener를 통해 함수명을 입력해 주면 된다
public class ClickExample : MonoBehaviour
{
public Button yourButton;
void Start()
{
Button btn = yourButton.GetComponent<Button>();
btn.onClick.AddListener(delegate { TaskOnClick(btn.name) });
}
void TaskOnClick(string name)
{
Debug.Log($"You have clicked the button!: {name}");
}
}
혹은 위와 같은 방식으로 delegate를 통해 인자를 전달해 줄 수도 있다