Ch1-2. Bulls & Cows : VS setting, C++ component, FString, TEXT 매크로

Date:     Updated:

카테고리:

태그:

Udemy에 있는 Unreal Engine C++ Developer: Learn C++ and Make Video Games 강의를 듣고 정리한 필기입니다. 😀


Chapter 1. Bulls & Cows 게임 만들기

🚀 Visual Studio 세팅

에디터는 편집 - 에디터 개인 설정 - 소스코드 에서 바꿀 수 있다.

image

파일 - Visual Studio 열기 클릭


🚀 액터와 컴포넌트

  • Actor
    • 여러개의 컴포넌트들이 붙을 수 있는 컨테이너
  • Component
    • 유니티와 마찬가지로 언리얼에서도 C++ 코드가 컴포넌트로서 역할을 할 수 있다.
      • 사용자 지정 Custom 컴포넌트인 셈
    • Static Mesh 같은 것도 다 컴포넌트이다.
  • 액터도 다른 액터의 컴포넌트가 될 수 있다.
    • 👉 모드에 있는 액터를 다른 액터의 컴포넌트로서 붙일 수 있다.

image

Bulls & Cows 게임은 사용자가 이 터미널에 입력을 하면서 이루어질 것이기 때문에 터미널 Actor에 📜BullCowCatridge.cpp 를 만들어 이를 컴포넌트로 붙여주어 동작하게 할 것이다.

image

이렇게 📜BullCowCatridge.cpp 를 컴포넌트로서 터미널 Actor에 붙였다.


🚀 언리얼에서의 문자열

📜BullCowCartridge.h

#pragma once

#include "CoreMinimal.h"
#include "Console/Cartridge.h"
#include "BullCowCartridge.generated.h"

UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class BULLCOWGAME_API UBullCowCartridge : public UCartridge
{
	GENERATED_BODY()

	public:
	virtual void BeginPlay() override;
	virtual void OnInput(const FString& Input) override;

	// Your declarations go below!
	private:
	
};

📜BullCowCatridge.cpp

터미널 액터에 붙게 되는 컴포넌트

#include "BullCowCartridge.h"

void UBullCowCartridge::BeginPlay() // When the game starts
{
    Super::BeginPlay();
    PrintLine(TEXT("Wecome to Bull Cows!"));
    PrintLine(TEXT("Press enter to continue..."));
}

void UBullCowCartridge::OnInput(const FString& Input) // When the player hits enter
{
    // 아직 구현 X
}

image

  • 언리얼도 일반 C++ 프로그래밍 방식과 같이 이렇게 헤더 파일엔 클래스와 함께 멤버 함수들은 프로토타입만 정의해놓고 이렇게 .cpp 파일에서 함수 바디를 정의해주는 것 같다.
    • 📜”BullCowCartridge.h” 헤더파일에 UBullCowCartridge 클래스가 있고 이 클래스는 멤버 함수 BeginPlay(), OnInput(const FString& Input) 를 가진다. 함수 바디 정의는 이 📜BullCowCatridge.cpp 에서 해준 것.
  • BeginPlay()는 이 스크립트가 붙은 액터가 게임에서 처음으로 활성화될 때 실행 되는 그 BeginPlay()를 오버라이딩 한 함수다.
    • PrintLine 함수는 추후 작성할 📜Cartridge 클래스에 있는 멤버 함수다. (📜BullCowCatridge 클래스의 부모라 상속 받음)
      • 터미널 액터에 텍스트를 띄우는 역할을 한다.
    • 게임이 시작되면 위 두 줄의 텍스트가 터미널 액터에 그려진다.


FString & TEXT 매크로

PrintLine(TEXT("Wecome to Bull Cows!"));
FString HiddenWord = TEXT("cake");
  • TEXT 매크로 (참고)
    • 언리얼에서는 문자열 리터럴을 TEXT 매크로 안에 넣어서 넘기는게 좋다.
      • 모든 플랫폼에서 2 바이트 문자열로 동작하게끔 해준다.
    • 어떤 플랫폼에서든 동작할 수 있도록 언리얼이 인코딩을 해주기 때문이다.
  • 언리얼의 3 가지 문자열 클래스
    • FName
    • FText 👉 언리얼의 자동 현지화(번역)를 지원한다.
    • FString 👉 C++ 에서의 string처럼 문자열 처리와 관련된 메서드들 사용 가능
  • 언리얼에선 int 말고 int32를 쓴다.


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

UE4Cpp1 카테고리 내 다른 글 보러가기

댓글 남기기