델리게이트를 통해서 메서드를 넘긴다...? 콜백 메서드로 특정 메서드가 끝났을때 반환한다...?
델리게이트를활용해 콜백 과정을 사용하고, 이를 통해 특정 함수가 끝났을 때를 알려준다고는 들었는데 그 과정이 좀처럼 이해가 안 갑니다
이게 왜 끝날때를 알려주는건지... 그러면 페이드인/아웃 시키는 대화 시스템 코루틴이 있으면 gui페이드인->(콜백) 내용 -> (콜백) gui페이드아웃 ->(콜백) 식으로 탁탁 처리 가능한건가요?
여기에 비유를 기가막히게 찰떡같이 하시는분이 많던데 좀 이해시켜주실 분 안 계신가요ㅠㅠ
델리게이트를활용해 콜백 과정을 사용하고, 이를 통해 특정 함수가 끝났을 때를 알려준다고는 들었는데 그 과정이 좀처럼 이해가 안 갑니다
이게 왜 끝날때를 알려주는건지... 그러면 페이드인/아웃 시키는 대화 시스템 코루틴이 있으면 gui페이드인->(콜백) 내용 -> (콜백) gui페이드아웃 ->(콜백) 식으로 탁탁 처리 가능한건가요?
여기에 비유를 기가막히게 찰떡같이 하시는분이 많던데 좀 이해시켜주실 분 안 계신가요ㅠㅠ
조건 맞을때 실행하는거. 님 아침에 일어날때 알람 맞추는거랑 같은거임
내가 아이템을 줍었을 때 그걸 인벤토리, '무슨 아이템을 얻었다' 라는 UI 등등에게 알릴 때 쓰는겨
하나하나 싱글톤이나 선언해서 해결할 수 있지만 너무 보기 불편하고 코드가 많아지면 성능도 떨어짐 그래서 쓰는게 델리게이트
sebastian lague 라는 유튜버 아재가 설명한 거 하고 인터넷 빡세게 검색하고 직접 사용해보면 알 수 있음
개쩐다.... 이 유튜버분 설명 정말 잘 하시네요 단박에 이해됐습니다 정말 감사합니다!!
함수포인터 이해하면 됨
페이드인아웃에 써도 됨. 페이드아웃(예약할 상대)이 끝나면 이 함수(델리게이트)를 호출하시오(콜백)
콜백을 안쓰면 기다리는 객체는 페이드아웃 객체에게 매프레임마다 전화해서 물어봐야함. '님 페이드아웃 끝남?' '아니' 를 수십 수백 반복하다가 '네' 떨어지면 그제서야 일 마저 하는것보다 '끝나면 알려주셈' 해놓고 잠시 폰질이라도 하면 훨씬 편하잖아? 그런거임
함수포인터배열
아이고 여러분들이 답변주셨네요 정말 감사합니다 아직 이해는 잘 안 가지만 설명해주신 것 바탕으로 한번 익혀보겠습니다 유튜버까지 첨부해주신 125.248님 감샇합니다 참고하겠습니다!
콜백은 말 그대로 call, back. 지금 당장 실행되는 게 아니라 함수를 인자로 받아놨다가 나중에 실행하는 거임. 숫자나 문자 말고도 함수도 함수의 인자로 받을 수 있는데 이 인자로 받은 함수를 콜백 함수라고 부름. 어떤 이벤트가 발생했을 때 실행되는 함수라는 의미로 말하면 '이벤트 함수'라고도 하는데, 이렇게 부르는 게 좀 더 잘 와닿는다고 개인적으로 생각함.
델리게이트는 영단어 의미를 보면 대리자라는 의미임. 메소드를 직접 호출하는 대신 델리게이트(대리자)가 대신 호출을 해주는 거임. 위에서 말한 콜백을 C#에서 구현하기 위해 필요함. javascript같은 경우엔 함수도 데이터타입이지만, C#은 그렇지 않기 때문에.