Machineboy空

Action, Delegate, 함수 포인터 본문

Computer/개념

Action, Delegate, 함수 포인터

안녕도라 2023. 10. 20. 11:19

* Player가 골인을 하면 관중과 사회자가 환호를 해줘야하는 상황

 

1)일반 함수를 쓴다면

player 골인을 player가 판단해서
관중.say환호()
사회자.say환호()
관중 say 환호
사회자 say 환호

구조 상, 

 

2) Action을 쓴다면

player 알림을 주는 구조 (action)
관중 player가 구독을 하고 알림을 받는 구조
사회자 player가 구독을 하고 알림을 받는 구조
//01. 일종의 변수로써 함수를 담는다.
 nod.onDestroy = (m, n, b) => {
     if (b) pressState[m] = false;
     lineNode[m].Remove(n);
 };
 lineNodeInfo[i].RemoveAt(0);
 lineNode[i].Add(nod);

//02. 함수를 담은 변수가 원하는 시점에 실행된다.
public void DestroyNode(bool autoDestroy = false)
{
    //onDestroy - Action자료형이 null이 아니게 되는 시점
    // = onDestroy가 어딘가에서 호출되어서 동작하는 시점?


    // 그냥 Destroy를 하지 않고 Action으로 Destroy하는 이유
    // 사라지는 Note의 정보를 저장하기 위함

    if (onDestroy != null) onDestroy(info.spawn, this, autoDestroy);
    Destroy(gameObject);
}

'Computer > 개념' 카테고리의 다른 글

Memory Leak(메모리 누수)  (0) 2023.11.03
Value vs Reference type  (0) 2023.10.24
VM(Virtual Machine) 가상 머신  (0) 2023.10.18
배열(Array)과 리스트(List)  (0) 2023.10.11
상속: virtual , override  (0) 2023.09.21