본문 바로가기

언리얼C++게임개발/01-1. 4.2->5.2로 에러수정하기

P470 IsPawnControlled()함수 - 전부 controlledPawn이 됨

void AABCharacter::BeginPlay()
{
	// Changed in 4.21. copied from PostInitializeComponents()

	Super::BeginPlay();

	if (!IsPawnControlled())
	{
		ABLOG(Warning, TEXT("IsNotPawnControlled %s"),*GetName());
		auto DefaultSetting = GetDefault<UABCharacterSetting>();
		int32 RandIndex = FMath::RandRange(0, DefaultSetting->CharacterAssets.Num() - 1);
		CharacterAssetToLoad = DefaultSetting->CharacterAssets[RandIndex];

		auto ABGameInstance = Cast<UABGameInstance>(GetGameInstance());
		if (nullptr != ABGameInstance)
		{
			AssetStreamingHandle = ABGameInstance->StreamableManager.RequestAsyncLoad(CharacterAssetToLoad, FStreamableDelegate::CreateUObject(this, &AABCharacter::OnAssetLoadCompleted));
		}
	}

아웃라이너를 보면 AIController는2개 ABPlayerController0는 하나라 controller와 AIController는 다른것 같다.

다음 함수로 해결하긴했지만. 이득우책을 따라치는과정에서 뭔가 빠진게 있는것 같다.

if(!Controller->IsPlayerController())