반응형

유니티를 하면서 Event Handler에 대해서 공부하다가 delegate를 처음 사용해보았다.


delegate란, 대리자로 delegate로 지정한 함수를 이벤트로 연결하여 인스턴스화 하는 것을 말한다.


지극히 주관적인 이해력으로 이야기하면, 함수를 발생하는 이벤트(ex - click, collision, overlap 등)를 지정해 둔 class를 delegate로 지정함으로써, class에서 사용하는 함수를 간략화 시키는 것으로 이해하였다.


코드를 바탕으로 설명하면, 


delegate로 함수를 선언하면, 선언한 함수를 Type으로 선언할 수 있게 된다.


delegate 함수로 선언한 Type으로 지정된 변수에 같은 Type을 정의해 준다.


그리고, delegate로 선언한 함수를 정의해 주고, 함수를 실행시킬 이벤트를 정희하고 그 함수를 실행시키는 것으로 delegate를 사용할 준비가 끝난다.


다른 class에서 사용할 때에는 delegate로 정의한 class 또는 function을 선언하여 대입 연산자를 사용하여 같은 parameter를 가진 함수로 정의해준다.


그러면 해당 class는 delegate를 정의한 class에 입력된 이벤트를 호출할 때에, delegate로 연결된 Onprintf 함수가 호출된다.


이게 delegate의 기초이다.


하지만 나는 delegate와 inheritance와 크게 다르다는 것은 느끼지 못하겠다...


굳이 차이점을 찾아보면 호출할 이벤트를 미리 정의하여 상속보다 간단하게 처리할 수 있는 정도..?


delegate에 대해서 더 깊게 공부하거나, 더 많은 공부를 하다보면 이유를 분명 알수 있을지도...

반응형

+ Recent posts