유니티 스크립트

델리기이트 예제

ruripanda 2024. 12. 24. 15:09
using UnityEngine;

public class DelegateDemo : MonoBehaviour
{
	//델리게이트 선언
    delegate float SumHandler(flaot a, float b);
    //델리게이트 타입의 변수 선언
    SumHandler sumHandler;
    
    //덧셈 연산을 하는 함수
    float Sum(flaot a,float b)
    {
    	return a+b;
    }
    
    void Start()
    {
    	//델리게이트 변수에 함수(메서드) 연결(할당)
        sumHandler = Sum;
        //델리게이트 실행
        flaot sum = sumHandler(10.0f, 5.0f);
        Debug.Log($"Sum = {sum}");
    }
}

 

	//델리게이트 선언
    delegate float SumHandler(flaot a, float b);

위 스크립트에서는 float 변수를 두가지로 선언했다 즉 변수의 형태를 정의

 

    //델리게이트 타입의 변수 선언
    SumHandler sumHandler;

델리게이트를 선언한 후 해당 델리게이트 타입의 변수를 선언한다. 앞서 선언한 델리게이트 명이 변수의 타입이 된다.

SumHandler가 변수의 타입이고  sumHandler가 변수 명이다

 

    void Start()
    {
    	//델리게이트 변수에 함수(메서드) 연결(할당)
        sumHandler = Sum;
        //델리게이트 실행
        flaot sum = sumHandler(10.0f, 5.0f);
        Debug.Log($"Sum = {sum}");
    }
}

Start 함수에서 sumHandler 변수에 Sum 함수를 저장(할당)한다. 이제 sumHandler를 호출하면 해당 변수에 저장된 함수인 Sum 함수를 호출할 수 있다