![[Rookiss University] UE5 Lyra 클론 코딩 (Haker)강의 썸네일](https://cdn.inflearn.com/public/courses/332307/cover/68a4025d-0d13-4677-a058-4db2af44a3a5/332307.png?w=420)
[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
₩660,000
중급이상 / Unreal Engine, C++
5.0
(14)
UE5에서 제공하는 Lyra 프로젝트의 핵심 부분을 따라 만들며 차근차근 그 구조를 학습하는 강의입니다.
중급이상
Unreal Engine, C++
질문&답변
AddLoadedAsset 쓰레드 부분 이해가 안갑니다.
멀티 스레드 관련 내용은 난이도가 높아서 강의에서는 간단하게 에디터 로드 중으로 말씀드렸었는데 에디터 로드 과정에서 쓰레드 문제는 좀 복잡해서 다른 예시로 알려 드릴게요.어떠한 에셋을 로드하는 과정 자체를 언리얼에서는 게임 스레드 말고 다른 스레드로 Task 형태로 던져서 시킬 수가 있어요. 만약에 100개를 로드해야 한다고 가정하면 20개씩 다른 스레드로 Task 형태로 던지면 정말 속도가 빠르거든요.이렇게 로드하면 문제가 로드에 대한 데이터를 가지고 있는 배열에서 경쟁 상태 문제가 발생합니다.그래서 락 방식으로 안전하게 라이라는 처리 한거에요.에디터 로드 중에 저희가 임의로 모듈 단계에서 뭔가 건드리면 의도치 않을 수 있긴 한데 이것도 경우의 수도 너무 많고 어려워서 일반적으로 고려하지 않으셔도 괜찮습니다.
질문&답변
GameFeatureAction 완료 시점
OnExperienceLoaded는 Experience가 로드가 완료되었다고 보장되는 거라서 AddComponent로 부착된 컴포넌트의 초기화 보장이랑은 다릅니다.왜냐면 Experience가 완료된 후 엄청 나중에 Actor를 생성할 수도 있잖아요?GameFeature의 AddComponent는 정말 대부분 문제없이 되도록 방어 로직이 많아서 사용하는 시점에서 걱정하실 일은 거의 없으세요.단 네트워크가 들어가면 문제가 생길 수도 있는데 이것도 대부분은 방어 로직이 되어 있기는 합니다.
질문&답변
AActorComponent의 RegisterComponentWithWorld()에서 이어지는 Activate()에 관한 질문입니다
Tick 등록 함수를 중복해서 호출해도 괜찮은 이유는 크게 두 가지입니다.첫째, SetTickFunctionEnable 함수 내부에서 IsTickFunctionRegistered를 통해 이미 Tick이 등록되어 있는지 확인하기 때문에, 여러 번 호출하더라도 동시에 여러 Tick이 등록되는 것을 방지합니다. 따라서 부담 없이 호출하셔도 됩니다.둘째, 더 중요한 이유인데 최초 등록을 기준으로 한다면 SetTickFunctionEnable의 첫 번째 호출은 TickState를 단순히 Enable로 변경할 뿐, 실제로 Tick을 등록하지는 않습니다. Tick 등록은 RegisterAllComponentTickFunctions 단계에서 이루어집니다.추가로, Actor의 경우 BeginPlay 함수에서도 다음과 같이 Tick 등록이 진행됩니다:PrimaryActorTick.SetTickFunctionEnable(PrimaryActorTick.bStartWithTickEnabled || PrimaryActorTick.IsTickFunctionEnabled());이 단계에서는 TickState를 Enable로 변경합니다.PrimaryActorTick.RegisterTickFunction(GetLevel());이 단계에서 비로소 Tick을 등록합니다.겉보기에는 Tick 등록 함수가 두 번 호출되는 것처럼 보일 수 있지만, 실제로는 TickState 변경과 Tick 등록이라는 서로 다른 역할을 하는 동일한 과정의 일부분이라는 것을 알 수 있습니다.
질문&답변
부록 공부 굳이 해야 할까요?
부록은 Haker님 버전을 원하시는 분들이 있어서 제공하는 보너스 강의 입니다.기존 강의랑 내용은 완전히 동일하기 때문에 둘 중 하나만 이용해서 공부하셔도 괜찮습니다.추가로 부록의 강사가 Haker님이고 기존에 보시는 강사는 저 입니다.
질문&답변
SimplePawnData가 표시되지 않습니다
위에 질문 하신 걸 보았을 때 스스로 해결하신 것 같네요
질문&답변
GameFeatureAction과 Experience완료
라이라에서 AddComponent 같은 작업은 Pawn에 진행을 많이 합니다.라이라 구조상으로 Experience가 완료되지 않으면 Pawn은 생성되지 않습니다.즉 Experience가 완료 후에 Pawn에 대해서 AddComponent가 된다고 확신할 수 있는거죠 굳이 이렇게 복잡한 방식을 선택한 이유는 초기화에 대한 흐름을 명확하게 컨트롤하기 위해서 라고 생각하시면 좋을 것 같습니다.
질문&답변
AssetManager의 함수들 언제 쓰나요?
이번 강의에서는 에셋 매니저를 라이라에서는 어떤 방식으로 사용하는지 보여 드린거라서 학습 차원으로 생각하시면 좋을 것 같습니다.
질문&답변
MSB3073오류 발생 및 해결방법이 무엇인가요
그런 경우에 대부분 엔진을 종료하시고(사진) 해주신 후에 빌드 한번 해주시면 됩니다.
질문&답변
5.5 에서 AddPlayerMappableConfig를 대체할 함수
감사합니다. 결국 5.5버전에서 변경되었군요!
질문&답변
Rider 디버깅 관련 질문입니다.
사실 디버깅 포인트는 차이가 없는데 라이더는 기본적으로 Low한 값까지 한번에 가도록 설정이되어 있습니다.VS도 동일하게 가능하세요
Liu님의 소개 - 인프런