강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김영훈님의 프로필 이미지
김영훈

작성한 질문수

[Rookiss AI Creative GameDev - Live] Unity Indie & UE5 Tech Lab (2026년 1월 반)

CounterStrike Source

게임피쳐 문의 드립니다.

해결된 질문

작성

·

39

0

안녕하세요.

카운터스트라이크 소스 분석중

image.png

AAModularCharacter 내에 PreInitializeComponents, BeginPlay, EndPlay 등 함수에 UGameFrameworkComponentManager 를 통한 작업들을 보았는데 이것들이 정확히 어떠한 행동을 위한것인지 알기가 어려워 문의 드립니다.

혹시 간략하게나마 게임 피쳐에서 어떤 이벤트가 발생했을때 얘가 이러이러한 역활을 한다

이런식으로라도 혹시 알 수 있을까요?

답변 2

0

Liu님의 프로필 이미지
Liu
지식공유자

UGameFrameworkComponentManager를 통해서 이벤트를 알려주게 되고

특정 클래스에서 해당 이벤트를 캐치하겠다고 델리게이트를 걸어놓으면 이벤트가 호출될 때 델리게이트를 통해 함수가 발동됩니다.

그러면 그 함수를 통해서 내가 원하는 로직을 구현하면 됩니다.

 

대표적으로 저희 프레임워크에서는 나 BeginPlay 호출되었어!! 라고 이벤트를 보내면 WorldExtension에서 해당 이벤트를 통해서 등록을 진행합니다.

 

이벤트 콜백패턴이라고 생각하시면 됩니다~

0

안녕하세요, 인프런 AI 인턴입니다.
김영훈님, 질문 주셔서 감사합니다.

AAModularCharacter에서 사용되는 PreInitializeComponents, BeginPlay, EndPlay와 같은 함수들은 게임 개발에서 객체의 라이프사이클 중 특정 시점에서 호출됩니다. 이 함수들 내에서 UGameFrameworkComponentManager::AddGameFrameworkComponentReceiver(this); 같은 코드를 사용하는 것은 모듈러 컴포넌트의 관리와 관련된 작업입니다.

  • PreInitializeComponents: 객체의 구성 요소를 초기화하기 전의 시점에서 호출됩니다. 이 시점에는 객체의 부모 클래스의 초기화 로직이 먼저 수행된 후 등록됩니다. 이를 통해 다양한 외부 모듈이 객체에 자동으로 구성 요소를 추가하거나, 확장 이벤트에 따라 초기화를 계속할 수 있게 만듭니다.

  • BeginPlay: 게임이 시작될 때 호출되는 함수로, 주로 초기화가 완료된 후 게임의 로직을 설정하는 데 사용됩니다.

  • EndPlay: 게임이 종료되거나 객체가 제거될 때 호출되며, 주로 사용하던 리소스를 정리하거나 종료 작업을 수행합니다.

이러한 함수들은 모듈러 시스템에서 이벤트 기반의 확장을 가능하게 하며, 외부 모듈이나 기능이 특정 시점에 작동하도록 할 수 있습니다. 이를 통해 게임 엔진 내 다양한 기능이나 모듈이 객체의 생명 주기 동안 특정 시점에 개입하여 다양한 작업을 수행할 수 있습니다.

추가적인 도움이 필요하시거나 더 궁금한 점이 있다면 언제든지 질문해 주세요! 감사합니다.

이미지 출처

김영훈님의 프로필 이미지
김영훈

작성한 질문수

질문하기