inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

레트로의 유니티 C# 게임 프로그래밍 에센스

델리게이트

콜백함수

713

Mars

작성한 질문수 2

1

유니티를 공부하다보면 콜백함수란 말이 많이 나옵니다. 강좌에 콜백함수에 대한 내용이 나오나 검색해봤는데 나오지 않는 것 같습니다. 콜백함수가 뭔지 설명 좀 부탁합니다.

unity C#

답변 2

2

이제민

콜백 함수는, 지연되어 되돌와 불려지는 방식으로 실행되는 함수입니다.

콜백 함수라는 타입이 존재하는 것은 아니고, 어떤 함수를 콜백 함수로서 사용하는 것입니다.

 

델리게이트나 람다함수 등을 사용하면 함수를 변수에 저장하고 다른 함수에 입력할 수 있습니다. 다른 말로 하면, A라는 함수를 변수에 저장한 다음, B라는 함수의 입력으로 넣고선, "B의 처리가 다 끝나는 타이밍에 A를 실행해달라고 부탁하는" 방식으로 코드를 구현할 수 있습니다.

예를 들어 다음과 같은 처리가 있다고 생각해 봅시다.

action someFunction = A; //someFunction 이라는 변수로 A 함수를 저장

B(A); // A를 입력으로 주면서 B 함수를 실행

 

그리고 B는 다음과 같이 구현되어 있습니다.

void B(action callBack) {
    // 시간이 다소 걸리는 B의 주요한 처리들...
    // B의 대부분의 처리가 모두 끝났을때...

    // 맨 마지막 라인에서 입력으로 받은 함수를 실행시켜줌
    callBack();
}

위와 같이 하면, B함수가 끝나는 타이밍에 맞춰 A를 실행하는, 연쇄 작용을 구현할 수 있습니다.

즉, 콜백 함수의 콜백-"되돌아 부르다"라는 것은, 콜백 함수를 받아 실행하는 측이 마치 우리들에게 되돌아와서는 자신의 실행이 모두 끝난 타이밍을 알려주는 것과 유사하게 보이기 때문입니다.

0

그럼날아봐

오! 저도 콜백함수가 뭔지 궁금했었는데 자세히 설명해 주셔서 감사합니다. 레트로님!

질문해 주신분도 감사하구요!

코루틴 관련 질문 있습니다.

0

64

1

강의 업데이트 질문

0

88

1

궁금한 부분이 있어서 질문 남깁니다.

0

161

1

FreeLook 카메라 Zone 설정관련

0

114

1

와..정말 감탄이 나오네요..

0

144

1

추상 클래스에 대해 이해가 잘 안되었는데

0

117

1

IsTargetOnSight가 자꾸 false로 나와요.

0

103

2

레이캐스트 에셋 임포트하는방법을 모르겠어요.

0

85

1

레이케스트 에셋을 다운받았는데 임포트 방법을 모르겠습니다.

1

139

2

혹시 어드레서블 강좌 추가계획이 있으실까요?

0

125

1

시네머신 FreeLook 관련

0

221

1

텍스트 드래그 앤 드롭

0

376

2

안녕하세요 랜덤오브젝트 생성기에서 질문있습니다.

0

243

1

유니티 에디터 버전

0

373

1

text가 아닌 TextMeshPro를 사용해도 괜찮나요?

0

1728

2

상속 관련 질문입니다.

0

350

1

TPS 캐릭터 문제점 있습니다.

0

437

1

총을 쏴서 적을 맞췄을 때 저를 추적하는 코드는 어디 나와있나요??

0

276

0

github

0

305

0

wave 를 0으로 초기화해주는 부분이없는데 왜 0부터 시작하나요?

0

314

0

TPS게임 제작 Aim애니메이션 관련 질문 드립니다.

1

366

1

점프관련해서 UI버튼클릭을 통한 전달값에 대한 질문입니다.

0

303

1

인터페이스

1

235

0

혹시 본 강의에서 Dictionary 나온 파트가 있을까요?

0

265

0