언리얼

[언리얼,C++] 언리얼 C++ 공부 정리(베르 - 함수, 블루프린트, 입력)

Esunn 2022. 8. 6. 18:21

https://youtu.be/S64VKjqz0oU

 

함수를 제작해 블루프린트에서 호출

그냥 만들어진 함수는 블루프린트에서 호출하려해도 컨텍스트 메뉴에서 안보임.

 

변수에서 UPROPERTY 매크로를 썼던 것 처럼 함수에서 UFUNCTION 매크로를 사용.

 

UFUNCTION에서

 

BlueprintCallable : 해당 함수를 블루프린트에서 사용 가능.

 

블루프린트에서 사용할 모든 함수에는 카테고리를 할당해줘야 정상적으로 이용가능.

만든 클래스를 기반으로 블루프린트를 다시 만든다.

 

//MyActor02.cpp
// Fill out your copyright notice in the Description page of Project Settings.


#include "MyActor02.h"

// Sets default values
AMyActor02::AMyActor02()
{
 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;

}

// Called when the game starts or when spawned
void AMyActor02::BeginPlay()
{
	Super::BeginPlay();
	
}

// Called every frame
void AMyActor02::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

}

void AMyActor02::InputSpaceKey(bool Pressed) 
{
	bPressedKey = Pressed;
}

void AMyActor02::MoveUp(float DeltaTime)
{
	if (bPressedKey)
	{
		FVector Location = GetActorLocation();
		Location += FVector::UpVector * 980.0f * DeltaTime;
		SetActorLocation(Location);
	}
}
//MyActor02.h
// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor02.generated.h"

UCLASS()
class BERL02_API AMyActor02 : public AActor
{
	GENERATED_BODY()
	
public:	
	// Sets default values for this actor's properties
	AMyActor02();

	bool bPressedKey;

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;

	UFUNCTION(BlueprintCallable, Category = "Move")
		void InputSpaceKey(bool Pressed);

	UFUNCTION(BlueprintCallable, Category = "Move")
		void MoveUp(float DeltaTime);
};

 

클래스를 선택하고 클래스 기반 블루프린트 제작 가능.

 

프로그래머가 블루프린트에서 호출할 수 있게 핵심 기능을 가진 함수를 만들고 디자이너가 이를 조합해 게임 기능을 만든다.

 


 

https://youtu.be/dZ1zMmxlv0s

언리얼에서 입력은 액션 입력과 축 입력으로 나누어짐.

 

액션 입력 : 마우스 버튼, 스페이스 바, 키보드 입력등등 눌렀다 떼는 입력

축 입력 : 이동이나 마우스 좌표같은 연속적인 값을 가지는 입력

 

입력 맵핑(키 입력에 대한 이름)을 하고 기능과 연결해줌 이 과정을 바인딩이라고 함.

 

편집 - 프로젝트 세팅 - 입력에서 맵핑 가능 

 

 

폰클래스가 부모인 C++클래스 제작

폰 : 언리얼에서 Ai나 플레이어가 조작할 수 있는 오브젝트

 

이제 언리얼 배터리 콜렉터를 해봐야겠다.