안녕하세요! 제목에 써둔 것처럼 패키지 저장 시 이미 패키지가 존재한다면 로딩을 다 하고 저장하는 것이 좋다고 말씀하셨는데 그 이유가 안전하게 패키지를 저장할 수 있다고 말씀하셨습니다. 궁금한 것은 왜 해당 동작이 안정성을 보장하게 되는지 만약 로딩을 안하고 저장 시, 추가적으로 애셋이 저장된다고 볼 수 있는지 가 궁금합니다. 감사합니다!
ABGameMode도 선택했고 코드에서 플레이어 컨트롤러도 제대로 바꿨는데 다음과 같은 오류가 떴습니다 Couldn't spawn player: Failed to spawn player controller 그래서 계속 문제를 붙잡고 씨름하다가 엔진을 껐다가 켜니까 이젠 아예 게임 모드가 없어졌네요 일단 프로젝트를 새로 만들어서 다시 해볼생각이긴 한데 이게 왜 이런건지 모르겠네요
문제는 B_LyraDefaultExperience 의 ExperienceID 에 Map이 들어가는 것 입니다. ULyCUserFacingExperience 의 코드는 이렇게 작성되어있습니다. LyCExperienceDefinition.h 는 이렇게 작성되었습니다. 현재 상황입니다. 에셋 메니저의 상황입니다. 어디가 잘못된걸까요?
Unreal Insight 사용 시 아래와 같이 세션이 실행됩니다. 다만 해당 화면이 켜지자 마자 Insight가 멈추고 추가적인 입력이 불가능한 상태가 됩니다. 또한 네트워크 인사이트 창은 생기지 않습니다. 이후 시간이 지나면 아래와 같은 애러 메세지가 뜨고 저절로 인사이트창이 닫힙니다.. 아래는 배치 파일 내용입니다. 현재 엔진은 5.4.4 버전으로 엔진 소스코드 빌드하여 사용중입니다. 언리얼 인사이트 툴도 추가 빌드해서 엔진버전과 동일한 버전으로 맞춰둔 상태입니다. 또한 아래 질문들에도 비슷한현상이 있는데 해당 질문에 있던 방법들 모두 사용해도 오류가 발생해 문의드립니다. 어떤 부분이 문제가 될까요?
DS1Character.cpp에서 ExecuteComboAttack() 함수 부분 질문이 있습니다. .... if (bComboSequenceRunning && bCanComboInput == false) { // 애니메이션은 끝났지만 아직 콤보 시퀀스가 유효할 때 - 추가 입력 기회 ComboCounter++; UE_LOG(LogTemp, Warning, TEXT("Additional input : Combo Counter = %d"), ComboCounter); } else { //UE_LOG(LogTemp, Warning, TEXT(">>> ComboSequence Started <<<")); ResetCombo(); bComboSequenceRunning = true; } ... 위의 해당 조건은 bCanComboInput 변수로만으로도 분기할 수있지 않나요? 현재 짜주신 로직에서 bComboSequenceRunning 변수가 없어도 될 것 같다는 생각이 들었고, 해당 bComboSequenceRunning 변수를 다 지우고 돌렸는데, 있을 때와 없을 때의 콤보 시퀀스가 유효할 때 추가 입력 처리하는 부분의 사용자 경험 차이가 없는 것 같아서 혹시 어떨지... 궁금해서 질문 드립니다. 끝으로, 퀄리티 높은 강의 정말 감사합니다
라이라에서는 GameFeatureAction을 이용하여 AddComponent나 AddInputConfig같은 설정을 완료하는데 이런 것들이 추가되는 시점이 ExpereinceReady가 완료된 시점인가요? 지금 이 강의 에서 만드는 클래스는 BP에서 Ready시점을 파악하기 위해 제작하는 클래스로 이해하면 될까요?
LoginId:a941906b4a64d255e61742bb3c03f580 EpicAccountId:06c1d8e5195c4b94839c2f03669096c0 Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\Epic Games\UE_5.4\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 758] Array index out of bounds: 0 into an array of size 0 UnrealEditor_ArenaBattle!AABItemBox::PostInitializeComponents() [C:\Users\jinhy\Desktop\Unreal\Inflearn\UE5Part2\ArenaBattle\Source\ArenaBattle\Item\ABItemBox.cpp:54] UnrealEditor_Engine UnrealEditor_Engine 강의 내용 중 ABItemPotionData와 ABItemScrollItemData 클래스를 생성한 뒤 코드를 똑같이 입력하고 에디터 실행했더니 위 에러 메시지와 함께 에디터가 열리지 않고 있습니다. DefaulGame.ini의 셋팅도 문제 없습니다. +PrimaryAssetTypesToScan=(PrimaryAssetType="ABItemData",AssetBaseClass="/Script/ArenaBattle.ABItemData",bHasBlueprintClasses=False,bIsEditorOnly=False,Directories=((Path="/Game/ArenaBattle/Item")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown)) bOnlyCookProductionAssets=False bShouldManagerDetermineTypeAndName=False bShouldGuessTypeAndNameInEditor=True bShouldAcquireMissingChunksOnLoad=False bShouldWarnAboutInvalidAssets=True MetaDataTagsForAssetRegistry=() // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Item/ABItemData.h" #include "GameData/ABCharacterStat.h" #include "ABScrollItemData.generated.h" /** * */ UCLASS() class ARENABATTLE_API UABScrollItemData : public UABItemData { GENERATED_BODY() public: UABScrollItemData(); FPrimaryAssetId GetPrimaryAssetId() const override { return FPrimaryAssetId("ABItemData", GetFName()); } public: UPROPERTY(EditAnywhere, Category = Stat) FABCharacterStat BaseStat; }; // Fill out your copyright notice in the Description page of Project Settings. #include "Item/ABScrollItemData.h" UABScrollItemData::UABScrollItemData() { Type = EItemType::Scroll; } // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Item/ABItemData.h" #include "ABPotionItemData.generated.h" /** * */ UCLASS() class ARENABATTLE_API UABPotionItemData : public UABItemData { GENERATED_BODY() public: UABPotionItemData(); FPrimaryAssetId GetPrimaryAssetId() const override { return FPrimaryAssetId("ABItemData", GetFName()); } public: UPROPERTY(EditAnywhere, Category = Stat) float HealAmount; }; // Fill out your copyright notice in the Description page of Project Settings. #include "Item/ABPotionItemData.h" UABPotionItemData::UABPotionItemData() { Type = EItemType::Potion; } ABItemBox.cpp 의 에셋 매니저에서 에셋을 불러올 때 배열이 비어있는 것 같습니다. void AABItemBox::PostInitializeComponents() { Super::PostInitializeComponents(); UAssetManager& Manager = UAssetManager::Get(); TArray<FPrimaryAssetId> Assets; Manager.GetPrimaryAssetIdList(TEXT("ABItemData"), Assets); ensure(0 < Assets.Num()); int32 RandomIndex = FMath::RandRange(0, Assets.Num() - 1); FSoftObjectPtr AssetPtr(Manager.GetPrimaryAssetPath(Assets[RandomIndex])); if (AssetPtr.IsPending()) { AssetPtr.LoadSynchronous(); } Item = Cast<UABItemData>(AssetPtr.Get()); ensure(Item); Trigger->OnComponentBeginOverlap.AddDynamic(this, &AABItemBox::OnOverlapBegin); } 깃헙에 올려주신 코드와 비교해보았는데 다른 부분이 없어서 어느 것이 문제인지 알고 싶습니다. 에디터가 열리지 않아서 설정을 확인할 수 없습니다。 추가로, 올려주신 프로젝트를 다운받아 실행했더니 똑같은 문제가 발생했습니다..