요즘 세상이 하루가 다르게 변하는 걸 느껴
AI로 인해 생산성이 5배이상 증가한 느낌이야
오늘은 유니티에서 Action에 대해 이야기 해 볼까해
일단 나는 GPT랑 Claude한테 배우고 있어
앱을 개발하고 있는데 모든 씬에서 팝업다이얼로그를 프리팹화해 메세지를 출력하려고 하다가 Action을 본거야
간단하게 말하면 Action은 메소드를 변수처럼 사용하게 해주는 거야.
그럼 혹자는 메소드를 그냥 사용하면 안되라고 말할 수도 있어.
문제는 사용하는게 문제가 아니라 메소드를 전달하려면 Action으로 Wrapping을 해야하기때문이야 Action을 사용하려면 Acton이름 뒤에 ?.Invoke()를 붙이면 실행이 돼
액션을 전역 변수로 선언하고
private Action onConfirmAction;
액션은 인수로 받는 메소드를 만들어 인수로 받은 액션은 onConfirmAction 전역 변수에 저장이 되지
public void ShowDialog(string message, Action onConfirm)
{
if (dialogUI == null) SetupDialog();
dialogUI.SetActive(true);
messageText.text = message;
onConfirmAction = onConfirm;
}
인스터스로 만들어진 메소드는 어떤 액션을 할지만 정해 놓고
DialogManager.Instance.ShowDialog("다음 씬으로 이동할까요?", () =>
{
SceneManager.LoadScene("NextScene");
});
실제는 버튼 함수가 실행이 되면 마지막에 onConfirmActon?.Invoke()로 Action에 저장된 메소드가 실행이 되는 거야
public void OnConfirmButton()
{
dialogUI.SetActive(false);
onConfirmAction?.Invoke();
}
'프로젝트 > Unity' 카테고리의 다른 글
| [Unity Tip] Electron과 Unity로 클래스 그래프 뷰어 만들기 (feat. vis-network) AI Coding 경험 (0) | 2025.04.27 |
|---|---|
| [Unity Tip] 2D Scene 화면에 카메라 영역 항상 보이기 (0) | 2025.02.26 |