에러 1 현재 소환된 액터를 처리하는과정에서 중단스택
// 이유 : 내가 소환된 액터를 활성화시켜 Destroy를 시켰는데, 그와중에 정리하려니깐 언리얼엔진님이 골치가 아프심

에러 2 volume[0] 접근
//Volume을 위에서 선언하고, 해당 Volume의 num도 체크를 안한상황에서 Volume[0] 에 접근 하려한다
이유가 왜일까? 다른 레벨에서 스타트를 했기 때문에 (그맵에는 SpawnVolume이 없다)
따라서 SIze는 0인데 배열을 탐색하려고하니 배열의 Index문제가 발생하였다.
그래서 여기 함수에서 중단점이 걸리게 되었고,
FORCEINLINE void RangeCheck(SizeType Index) const
{
CheckInvariants();
// Template property, branch will be optimized out
if constexpr (AllocatorType::RequireRangeCheck)
{
checkf((Index >= 0) & (Index < ArrayNum),TEXT("Array index out of bounds: %lld into an array of size %lld"),(long long)Index, (long long)ArrayNum); // & for one branch
}
}
CHECK로 인덱스가 올바르지 않으면 경계를 벗어났다고 에러를 발생시키고 중단점이 걸리게 된다.
여기에서의 Checkf 는 어썰트코드같다. 이런걸보니깐 어썰트가 좋은것 같은데
후우..진도 후딱 따라잡고 어썰트코드 사용하고싶다
에러 3 레벨이 달라지면 Character->speed가 디폴트로 돌라가게되네 Instance에 저장해야겠다
=> 에러 2도 그렇고 에러 3도 그렇고
레벨이 달라지면 게임 스테이트가 초기화되는건 배웠는데
정확히 무엇이 달라지는지를 좀 알아야겠다
이유 : : 레벨이 달라지게되면 초기화가 들어가는것같다 모든 액터들이
pawn도 초기값의 Speed로 돌아갔다
=> 레벨 변경 시 현재 레벨에 배치된 모든 액터(캐릭터, 폰, 게임 상태 등)는 기본적으로 초기화(파괴)되고 새로 생성됩니다.
알아보기
흠 만약에 캐릭터에 버프아이템을 적용한다고 치면 ->
내 생각은 Item -> Gameinstance ->GameState에서 BeginPlay때마다 불러와서 캐릭터에 적용인데 과연 이게 좋은설계일까?
어떻게보면 Pawn도 초기화가 되는데 흠..
'TIL' 카테고리의 다른 글
2025 / 02 / 17 TIL : Unreal Assert(2/3) (0) | 2025.02.17 |
---|---|
2025 / 02 / 13 TIL : 에러 (0) | 2025.02.13 |
2025 / 02 / 11 : TIL : 컴파일 에러 해결 및 인터페이스(2/3) (0) | 2025.02.11 |
2025 / 02 / 10 TIL : 인터페이스와 추상클래스 (1/3) (0) | 2025.02.10 |
2025/02/06 TIL : Delegate (0) | 2025.02.06 |