전체 글211 [UE5] BeginPlay 실행순서 언리얼 BeginPlay 호출 시점 — GameMode vs 레벨 액터, 누가 먼저일까?언리얼을 다루다 보면, BeginPlay()가 언제 호출되는가에 대한 궁금증이 생깁니다.특히 GameMode가 먼저 실행될까, 아니면 레벨에 배치된 Actor들이 먼저 실행될까?처음엔 “월드의 BeginPlay부터 시작하니까, 레벨에 배치된 액터들이 먼저겠지?” 하고 생각했는데,막상 테스트해보면 그렇지 않습니다.직접 실행해본 결과,놀랍게도 빌드된 버전과 **에디터(PIE)**에서 호출 순서가 다릅니다. 빌드된(패키지된) 버전의 BeginPlay 순서PawnGameModeGameStatePlayerStatePlayerControllerHUDLevel레벨에 배치된 Actor 에디터(PIE, Play In Editor)에.. 2025. 10. 27. 도움이 되는 소프트웨어 설계 원칙 1. DRY (Don't Repeat Yourself)중복을 피하라같은 코드/로직을 여러 군데서 복붙하지 말고, 함수·클래스·모듈로 뽑아서 재사용👉 버그 수정 시 한 군데만 고치면 됨🔹 2. KISS (Keep It Simple, Stupid)가능한 단순하게 만들어라쓸데없이 복잡한 추상화, 상속 구조는 유지보수를 어렵게 함👉 단순한 구조가 오히려 성능·안정성↑🔹 3. YAGNI (You Aren’t Gonna Need It)필요하지 않은 기능은 만들지 마라“나중에 필요할지도 몰라서” 만드는 기능은 대부분 쓰이지 않음👉 현재 요구사항에 맞는 최소한만 구현🔹 4. Composition over Inheritance (상속보다 합성)상속으로 기능 늘리기보다는 **컴포넌트 붙이기(합성)**로 해결👉.. 2025. 9. 11. [UE5]GAS: Gameplay Event로 어빌리티 자동 발동시키기 언리얼의 **Gameplay Ability System (GAS)**을 활용하다 보면, 어빌리티를 직접 TryActivateAbility()로 발동시키는 것이 아니라, 특정 이벤트나 상황에 반응해서 자동으로 어빌리티가 실행되게 만들고 싶을 때가 있다.예를 들어 어떤 캐릭터가 런치 공격(튕겨나감)을 받아야 할 때, Gameplay Event 하나만 날리면 관련 어빌리티가 자동으로 실행되면 좋겠지?이번 글에서는 그걸 가능하게 해주는 패턴을 소개 목표Gameplay Event가 발생했을 때 어빌리티가 자동으로 실행되게 하기직접 코드로 TryActivateAbility를 호출하지 않아도 되는 구조 만들기 핵심 코드: UGAP_Launched 생성자UGAP_Launched::UGAP_Launched(){ Ne.. 2025. 7. 25. [UE5] GAS - GameplayEffect로 상태 태그 부여하고 이벤트 반응하기 언리얼 GAS - GameplayEffect로 상태 태그 부여하고 이벤트 반응하기Gameplay Ability System(GAS)을 사용할 때, 캐릭터가 사망했을 때 자동으로 이벤트가 호출되도록 구성하고 싶을 수 있습니다.이 글에서는 GameplayEffect를 사용해 Stats.Dead 태그를 부여하고,캐릭터가 그 태그를 감지해 반응하도록 만드는 과정을 정리합니다. 1. GameplayEffect 클래스 만들기 먼저 UBlueprintGameplayEffect 기반의 새로운 GE(예: GE_Dead)를 생성합니다.이후 Target Tags > Grant Tags to Target Actor 항목에서 아래처럼 태그를 부여합니다:이 설정은 이 GameplayEffect가 적용된 대상에게 Stats.De.. 2025. 7. 23. [UE5 라이라(Lyra) 샘플로 오버워치 만들기] 13. 훈련장용 UserFacingExperienceDefinition만들기 [Lyra 프로젝트] 훈련장용 UserFacingExperienceDefinition 만들기이제 FrontEnd 작업은 모두 끝났습니다!이번 포스팅에서는 사용자가 선택할 수 있는 훈련장(UserFacingExperienceDefinition)을 만들어보고,실제 버튼 클릭 시 해당 맵으로 진입하는 로직까지 연결해보겠습니다. UserFacingExperienceDefinition이란?간단히 말하면,하나의 게임 모드(ExperienceDefinition) 와그에 해당하는 맵 정보를 연결하는 데이터 자산입니다. 1단계. UserFacingExperienceDefinition 만들기먼저 아래 경로로 이동합니다.📂 Plugins -> ShooterCore Content -> System -> Playlists여기.. 2025. 7. 14. [UE5] DedicatedServer에서 DrawDebug 그리면 멀티게임을 만드는 도중 DrawDebug를 그려봤다. 서버에서만 그리게 데디서버에서 비긴플레이에서 호출해봤는데 예상치 못한 결과가 나타났다. Server Clients 분명 클라인데 전부다 그리고 있는거 아닌가.. 혹시 몰라 리슨서버 에서 실행해봤지만 Server Clients 리슨서버는 정상적으로 서버에서만 그리고 있다.. 왜 데디서버는 클라인데 보이는거지 하면서 계속 생각해봤다.. 아무리 생각해도 안되야 되는데 하면서 함수를 봤더니 void DrawDebugCapsule(const UWorld* InWorld, FVector const& Center, float HalfHeight, float Radius, const FQuat& Rotation, FColor const& Color, bool.. 2025. 7. 9. 이전 1 2 3 4 ··· 36 다음