본문 바로가기

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

이득우 언리얼 4.52이상 에러수정하기

https://github.com/smarthug/UE4-CPP-Book

 

 

CHAPTER 6

  • 203p ABCharacter.cpp Tick()

From

SpringArm->RelativeRotation = FMath::RInterpTo(SpringArm->GetRelativeRotation(), ArmRotationTo, DeltaTime, ArmRotationSpeed)

To

SpringArm->SetRelativeRotation(FMath::RInterpTo(SpringArm->GetRelativeRotation(), ArmRotationTo, DeltaTime, ArmRotationSpeed));

  • 204p ABCharacter.cpp ViewChange()

From

GetController()->SetControlRotation(SpringArm->RelativeRotation);

To

GetController()->SetControlRotation(SpringArm->GetRelativeRotation());

 

CHAPTER 8

  • 272p 동작하는 4.25.4 버전의 montage UI 
  •  
  • NextAttackCheck 노티파이의 위치가 섹션이 끝나는 지점에 가까워질수록 노티파이실행->다음섹션 명령을 내려도 OnMontageEnded 실행되서 콤보가 안될 확률이 높다. (출처https://blackpinkjisoo.tistory.com/17)

CHAPTER 11

  • 358p ABGameInstance.cpp

FROM

  ABCHECK(ABCharacterTAble->RowMap.Num()>0);

TO

  ABCHECK(ABCharacterTAble->GetRowMap().Num()>0);

CHAPTER 12

  • 399p ABAIController.h

FROM

  virtual void Possess(APawn* InPawn) override;

  virtual void UnPossess() override;

TO

  virtual void OnPossess(APawn* InPawn) override;

  virtual void OnUnPossess() override;

  • 400p ABAIController.cpp

FROM

void AABAIController::Possess(APawn* InPawn)

{

        Super::Possess(InPawn);

        ...

}

 

void AABAIController::UnPossess()

{

        Super::UnPossess();

        ...

}

TO

void AABAIController::OnPossess(APawn* InPawn)

{

        Super::OnPossess(InPawn);

        ...

}

 

void AABAIController::OnUnPossess()

{

        Super::OnUnPossess();

        ...

}

  • 444p

public:

        ...

        void Attack();

        FOnAttackEndDelegate OnAttackEnd;

 

private:

        ...

        // 원래 선언되어있던 Attack 함수 주석 처리하거나 없애기

        /*void Attack();*/

Chapter 13

  • 470p
  • ... 생략됨 , 기존에 있던거 지우지말기

void AABCharacter::BeginPlay()

{

        Super::BeginPlay();

 

        ...

}

Chapter 14

  • 505,6,7p

ABCharacter.CPP

FROM

bCanBeDamaged = false;

bCanBeDamaged = true;

TO

SetCanBeDamaged(true);

SetCanBeDamaged(false);

  • 510p

FROM

void AABAIController::Possess(APawn* InPawn)

{

        Super::Possess(InPawn);

}

TO

void AABAIController::OnPossess(APawn* InPawn)

{

        Super::OnPossess(InPawn);

}

  • 538p

FROM

float AABCharacter::TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser)

{

        ...

        auto ABPlayerController = Cast<AABPlayerController>(EventInstigator);

        ABCHECK(nullptr != ABPlayerController, 0.0f);

        ABPlayerController->NPCKill(this);

}

TO

float AABCharacter::TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser)

{

        ...

        auto instigator = Cast<AABPlayerController>(EventInstigator);

        ABCHECK(nullptr != instigator, 0.0f);

        instigator->NPCKill(this);

}

Chapter 15

  • 597p

FROM

if (bIsPlayer)

        {

                 auto ABPlayerState = Cast<AABPlayerState>(PlayerState);

        }

TO

if (bIsPlayer)

        {

                 auto ABPlayerState = Cast<AABPlayerState>(GetPlayerState());

        }

Contribution

 

이득우의 언리얼 C++ 게임 개발의 정석

언리얼 엔진 학습에 목말라하는 게임 개발자에게 단비 같은 언리얼 엔진 프로그래밍 책이다.

www.acornpub.co.kr

[p.68 : 코드 2-4 Fountain.cpp]
아래 이미지의 코드 6줄 제거.


[p.72 : 아래에서 1행]
UPROPERY 매크로->
UPROPERTY 매크로

[p.195 : 7행]

[p.195 : 20행]

[p.204]

[p.207]
애니메이션 시스템 저작->
애니메이션 시스템 제작

[p.210]
클래스 정보->
클래스 세팅

[p.215 : 위에서 12행]
NativeAnimationUpdate 함수를->
NativeUpdateAnimation 함수를

[p.300]
"DebugDrawHelpers.h"->
"DrawDebugHelpers.h"

[p.311]
SetActorCollisionEnabled->
SetActorEnableCollision

[p.358 코드 11-5]
ABCHECK(ABCharacterTable->RowMap.Num() > 0);->
ABCHECK(ABCharacterTable->GetRowMap().Num() > 0);

[p.415 : 2행]
다음의 셋 중 하나의 값을 반환해야 한다.->
다음의 넷 중 하나의 값을 반환해야 한다.

[p.417]

[p.429 3행 내용 추가]
for (auto const& OverlapResult : OverlapResults)

[p.441]
BTTask를 부모로 하는->
BTTaskNode를 부모로 하는

[p.504 : 1행]

[p.520 코드]
auto ABPlayerState = Cast(PlayerState);->
auto ABPlayerState = Cast(GetPlayerState());

[p.539]
파일-현재를 다른 이름으로 저장->파일-현재 레벨을 다른 이름으로 저장

[p.547]

[p.556]
코드 15-5 PlayerState.h->코드 15-5 ABPlayerState.h

[p.557]
코드 15-5 PlayerState.cpp->코드 15-5 PlayerState.h

[p.582]
그림 15-18 프로젝트 세팅->월드 세팅

[p.636: 찾아보기 N]
NativeAnimationUpdate-> NativeUpdateAnimation

 

  • 389p ABCharacter.cpp
  • UserWidget(HPBar)의 HP 값이 연동되지 않는 오류
	HPBarWidget->InitWidget();
	auto CharacterWidget = Cast<UABCharacterWidget>(HPBarWidget->GetUserWidgetObject());
	if (nullptr != CharacterWidget)
	{
		CharacterWidget->BindCharacterStat(CharacterStat);
	}
 

HPBarWidget->InitWidget(); 추가 [참고자료]

소스 코드 중 일부 아래의 github 참고하여 수정.

https://github.com/smarthug/UE4-CPP-Book

정오표 http://www.acornpub.co.kr/book/unreal-c#errata