Unity

람다식

gcreators 2024. 10. 22. 18:04
using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class UIButtonExample : MonoBehaviour
{
    public delegate void DelegateWithInt(int _num);
    private DelegateWithInt callback = null;

    [SerializeField]
    private Button btn = null;
    [SerializeField]
    private TextMeshProUGUI msg = null;

    private void Start()
    {
        //btn.onClick.AddListener(OnClickButton); //AddListener(메소드); = 이벤트 발생시(메소드 호출);
        //Arrow Function
        btn.onClick.AddListener(
            () => { Debug.Log("Lambda Exampression"); } );  //람다식 - 익명(임시)함수
        //(함수매개변수) => {내용}

        //callback = OnclickButton; //함수를 호출만 되면 되는 경우에
        //callback = OnClickWithInt; //델리게이트에 맞게 Int 매개변수를 받는 메서드를 새로 만드는 것도 가능하지만 과정이 귀찮다.
        callback = (int _num) => { OnClickButton(); }; //그래서 람다식이 나오게 됨
       
    }

    public void OnClickButton()
    {
        Debug.Log("hi");
    }
    private void OnClickWithInt(int _num)
    {
        OnClickButton();
    }
}

유니티에서 람다식은 주로 이벤트 처리, 콜백, 그리고 간단한 함수를 정의할 때 유용하게 사용된다.

 

콜백함수를 사용시 과정이 귀찮아지고 코드의 가독성이 좋지 않은 문제가 발생하게 되는데

 

이 문제를 람다식으로 해결하면 가독성과 생산성이 좋아진다고 볼 수 있다.

 

'Unity' 카테고리의 다른 글

AI - NavMesh  (0) 2024.11.04
UI - Canvas  (0) 2024.10.18
Texture  (1) 2024.10.07
Lerp(선형 보간)  (0) 2024.10.01
Coroutine(코루틴)  (0) 2024.09.30