Kiki Devlog

delegate / system.Action 본문

Unity/개념 정리 & 팁

delegate / system.Action

kimkiki 2022. 2. 3. 22:24
728x90

delegate란?

:  C언어의 함수포인터같은 것. 메소드를 참조함!

 

사용 이유

: 이벤트핸들링(리스닝)을 위해서 사용함.

  로블록스의 remoteevent 와 비슷한 듯. 계속 이벤트가 일어났는지를 확인하지 않고도(상대방의 상태를 확인할 필요 없이 ) 그냥 나 이상태됨! 이라는 이벤트를 던지면 바로 듣는 쪽에서 받아서 실행할 수 있어 좋음

Delegate( 델리게이트 ) 는 어떨때 쓰나요? > 질문 답변 | 데브코리아 (devkorea.co.kr) 

  

이때 delegate를 별도의 선언 없이 쉽게 사용할수 있도록(shortcut느낌) Action 이 등장.

 

Action은 return 값 없이 연결된 함수들을 실행함

public Action<Player, ObjectData> OnInteraction;

void func(){//이벤트와, 이벤트가 일어나면 작동할 함수(func1)를 연결
	OnInteraction += func1;
}


private void func1(Player player, ObjectData obj)
{
   ...event가 일어나면 할 작업들...
}




//다른 코드
OnInteraction.Invoke(player,obj); //이걸로 event를 실행시킴

 

delegate 사용 예제

: delegate란 무엇일까? (tistory.com)

 

action 공부 시 참고

: [C#] Action과 Func : 미리 정의 된 Delegate : 네이버 블로그 (naver.com)

: Unity Chapter 8-4. C# 프로그래밍 [고급] : 액션 - 평생 공부 블로그 : Today I Learned‍ 🌙 (ansohxxn.github.io)

: Action Vs Delegate Event (tistory.com)

 

 

 

 

 

 

'Unity > 개념 정리 & 팁' 카테고리의 다른 글

Optional Chaining ( ?. )  (0) 2022.02.03
Debug.Assert()  (0) 2022.02.03
Linq(Language-Integrated Query) Any(),All()  (0) 2022.02.03
ScriptableObject / CreateAssetMenu 사용법  (0) 2022.02.02
람다식 () => {}  (0) 2022.01.31
Comments