• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

여러파일에서 구독시, 기능 수행 순서 조정이 가능한지요?

20.04.30 03:48 작성 조회수 175

0

안녕하세요. 강좌 잘 보고있습니다.

-

각각 다른 파일이나 스코프에서 체이닝/구독 된 함수들의

동작 순서를 조정하거나 관리 할 수 있나요?

-

예를들어 '충돌' 판정을 하는 매니저가 있을 때,

1.플레이어 오브젝트 파일

2.몬스터 오브젝트 파일

3.무기 오브젝트 파일

에서 충돌판정 매니저를 구독후에

제각기 다양한 기능들을 += 하여 매니저에 전달 한다고 치면,

그 기능들이 동시에 수행되는것이 아니라 

3 > 2 > 1 이나  2 > 3 > 1 이런식으로 순서를 조정하고 싶다고 가정할 때

-

그런것이 가능한지 여부와

불가능 하다면, 이런 케이스에는 델리게이트를 쓰면 안되는지에 대해

여쭈어 보고싶습니다.

답변 2

·

답변을 작성해보세요.

2

대부분 += 등록 순서되로 실행되기는 하는데,
이것이 문법적으로 꼭 보장된 것은 아닙니다.
https://stackoverflow.com/questions/54402766/delegates-invocation-order

따라서 정말 정말 순서 보장이 꼭 필요한 상황이 있다면
델레게이트 하나만으로는 안 되고 우회법을 생각하셔야 합니다.

어떤 함수에서 2 > 3 > 1을 직접 호출해주고,
그 함수를 delegate += 해서 처리한다거나,
delegate 여러개를 만들어서 리스트로 관리 한다거나,
하는 여러 방법들이 있겠습니다.

0

닥부님의 프로필

닥부

질문자

2020.04.30

ㄴ 감사합니다! 도움이 되었습니다!