- Character Class 확장하기
BlueprintNativeEvent
이벤트 발생 시에 코드에서 설정한 부분이 실행되게 함
블루프린트에서는 설정될 수 없는 부분임
해당 컴포넌트와 오버랩되는 Actor들을 가져오고 싶다면?
컴포넌트->GetOverlappingActors(저장할 액터 배열);
// Get all overlapping Actors and store them in an array
TArray<AActor*> CollectedActors;
CollectionSphere->GetOverlappingActors(CollectedActors);
GameMode클래스
~GameMode클래스에서는 게임 룰을 다룸
EditDefalutsOnly
게임 모드의 경우 레벨에 직접 객체를 올려두고 인스턴스에서 값을 변경하는 것이 아니기 때문에 컨스트럭션 스크립트에서 기본값을 편집하게 된다. 이런 상황에서 이 프로퍼티를 사용한다.
PrimaryActorTick.bCanEverTick
매 프레임마다 Tick 메서드가 실행되게 할 것인지를 선택하는 것인데 true이면 실행되고 false이면 실행되지 않음
* 튜토리얼 13강에서 컴파일을 해도 매 Tick마다 Player의 Power가 줄어들지 않는 현상이 있었는데
PrimaryActorTick.bCanEverTick 이 true로 명시되어 있지 않았기 때문이었음
-> BatteryCollectorGameMode의 생성자에 PrimaryActorTick.bCanEverTick = true 를 추가해주었더니 정상 작동했음
추가한 헤더
#include "Kismet/GameplayStatics.h"
게임 플레이에서 사용할 수 있는 유용한 함수들이 들어있음
HUD를 사용하려면?
프로젝트명.Build.cs파일에서 이렇게 "UMG"를 추가해줌
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "UMG" });
에러 발생!
UENUM(BlueprintType)
enum class EBatteryPlayState
{
EPlaying,
EGameOver,
EWon,
EUnknown
};
위와 같이 코드를 작성하니 에러가 발생했다.
에러를 보니 "Invalid Blueprint enum base - currently only uint8 supported"라고 되어 있었다.
에러 해결 ) enum class EBatteryPlayState : uint8 이렇게 uint8에서 파생되게 만들었더니 해결되었다.
GENERATED_BODY( )가 12번째 줄에 없어도 되는거였어..?
어제까지만 해도 GENERATED_BODY가 항상 같은 Line에 존재해야하며 그렇지 않으면 error가 발생한다는 글도 봤고 실제로 실험해봤을 때도 그래서 그런 줄 알았는데 오늘보니 꼭 그런 건 아닌가보다.
Enum 타입을 상단에 추가하여 GENERATED_BODY( )가 아랫 줄로 밀려나게 되었는데도 빌드가 잘 되는 걸 보고 의아했다.
한 번 더 알아보고 Unreal을 다뤄본 친구와 의견을 나눠봐야겠다.
// enum to store the current state of gameplay
UENUM(BlueprintType)
enum class EBatteryPlayState : uint8
{
EPlaying,
EGameOver,
EWon,
EUnknown
};
UCLASS(minimalapi)
class ABatteryCollectGameMode : public AGameModeBase
{
GENERATED_BODY()
...
};
'Unreal 공부' 카테고리의 다른 글
5일차 (Unreal Document 튜토리얼 따라하기 2) (0) | 2020.07.23 |
---|---|
4일차 (Unreal Document 튜토리얼 따라하기 1) (0) | 2020.07.22 |
2일차 (Unreal Battery Collector Tutorial 따라하기) 6~8강 (0) | 2020.07.19 |
1일차 (Unreal Battery Collector Tutorial 따라하기) 1~5강 (0) | 2020.07.18 |