반응형 전체 글81 [UE5] 인터페이스 VS 이벤트 디스패쳐 사용처 인터페이스와 이벤트 디스패쳐의 차이점 중 하나를 기억하기 위해 글로 남긴다. 두 호출방식 중 선택하는 방법은 두가지를 고려해야한다.1. 객체가 하드 레퍼런스(즉, 직접적인 참조)를 가지고 있어도 괜찮은가?2. 참조의 방향?를 고민 해야봐야 한다. * 1번의 경우 Event Dispatcher는 직접적인 참조를 가지고 있다. 따라서 레벨에 로딩되어 있거나, 항시성을 가진 애들을 참조해서 쓰는것이 좋다. 인터페이스의 경우 호출받는 대상이 불특정 다수이기 때문이다.참고사항으로,Event Dispatcher는 직접적인 참조를 없애는 것이 아니라, 참조할 위치를 옮기는 것이다. 결국엔 바인딩할려면 Dispatcher를 가진 객체에 대한 참조가 필요하기 때문이다. 따라서 참조를 완전히 없애기 위해서는 Interf.. 2025. 12. 27. [UE5] Mian() To BeginPlay() 까지 과정 C++의 기본 구조로써 main()부터 시작하게된다.초기화 -> 작성한코드 -> 종료(정리) 순으로 간결하게 정리됀다. 하지만 언리얼에서 게임코드를 작성하는경우 이런 루프를 직접적으로 작성하지 않는다. 메인함수부터 시작하는 것이 아니라, GameMode 서브클래스를 정의하고 InitGame()등을 오버라이드 해서 시작한다.액터의 경우 BeginPlay()나 Tick()을 정의하는 경우다. 엔진을 시작하는데 있어 여러 복잡한 상속,로우 레벨단의 코드들이 있겠지만, 엔진의 메인은 FEngineLoop 클래스에 구현되어 있다. 이전 C++구조사진과 비슷한 초기화 -> 작성한코드 -> 종료(정리) 순으로 되어있다.PreInit -> Init -> Exit순으로 알아보겠다. PreInit : 모듈 로드... 2025. 12. 22. [UE5] 서버간 데이터 전송(Beacon 활용) 이번에는 언리얼의 Online Beacon 시스템을 이용해서전투맵에서 로비맵으로 돌아오는 구조를 정리해봤다. 1️⃣ BeaconHost (서버)BeaconHost는 간단히 말하면 소켓을 열고 클라이언트 연결을 받는 서버다.하나의 Host 안에는 여러 개의 HostObject(세션 단위)를 붙일 수 있다.Host는 전체적인 통신 관리만 하고, 실제 통신 처리는 HostObject가 담당한다.// 로비맵 진입 시 실행되는 흐름// 1. 프로젝트 실행 시 BeaconHost 생성// 2. 포트 열고 클라이언트 연결 대기// 3. BeaconHostObject 등록 2️⃣ BeaconHostObject (세션)Host 안에서 특정 통신을 담당하는 객체다.예를 들어 “전투 결과 전달용” HostObject를 하나.. 2025. 10. 24. [에디터 언어] 영문 써야하는 이유 UMG를 수정중 생긴 이슈이다. * 원인- UMG에서 리스트뷰를 사용할려고 하다가 에디터가 튕기는 상황 발생- 에러내용Assertion failed: EntryClassPtr[File:C:\Users\KGA\Desktop\UEFull\Engine\Plugins\Runtime\ModelViewViewModel\Source\ModelViewViewModelEditor\Private\Customizations\MVVMListViewBaseExtensionCustomizationExtender.cpp][Line: 55]UnrealEditor_ModelViewViewModelEditor!UE::MVVM::FMVVMListViewBaseExtensionCustomizationExtender::CustomizeDet.. 2025. 9. 30. [언리얼5] 세션 인터페이스 에서 받아온 정보 다른 클래스로 넘기기 사진과같이 MultiplayerSessionSubsystem은 SessionInterface를 사용해 정보를 Deletegate를 통해 받고있다. 하지만 이 정보를 다른 클래스(MenuClass)로 넘겨줄려면 다른 방법을 써야한다. 커스텀 델리게이트를 만들어 전파해주는것이다. 커스텀 델리게이트+커스텀함수 를 만들어 MultiplayerSessionSubsystem -> MenuClass 로 Boradcast 해주는 방식으로 해결한다. 2025. 8. 3. [언리얼5] 스마트포인터(MakeShareable, .ToSharedRef()) SessionSearch = MakeShareable(new FOnlineSessionSearch());OnlineSessionInterface->FindSessions(*LocalPlayer->GetPreferredUniqueNetId(), SessionSearch.ToSharedRef()); 스마트 포인터(TSharedPtr)의 역할스마트 포인터는 자신이 관리하는 객체가 몇 군데에서 사용되고 있는지 항상 개수를 셉니다. (이를 '참조 카운팅'이라고 합니다)MakeShareable로 SessionSearch를 만들면, 참조 카운트는 1이 됩니다.OnlineSessionInterface->FindSessions(...) 함수에 이 SessionSearch를 전달하면, 온라인 시스템도 이 객체를 사용하게 .. 2025. 8. 3. 이전 1 2 3 4 ··· 14 다음 반응형