최대 1 분 소요

Unity이외에 Unreal로 도전해보기로 하였다.
공식문서에 있는 튜토리얼을 보며 따라해보며 기능들을 익혀볼 생각이다.

한 오브젝트를 공중에서 Z축으로 상하운동을 하는 코드를 작성해볼 것이다.

  1. C++클레스 생성 -> Actor를 만든다.
    FloatingActor

  2. 만들어진 Actor를 씬에 끌어 올리면 다음과 같이 배치된다.
    Transform
    그리고 메시를 추가하기 위해 컴포넌트 추가 -> 큐브를 선택하였다.

  3. 이제 코드로 Z축 상하운동을 만들어 준다.
    FloatingActor1

FloatingActor.h

public에 다음과 같은 float 변수 추가

float runningTime // 시간 경과에 따라 변하는 변수 선언

FloatingActor.cpp

Tick 함수 내부에 다음과 같은 코드 추가

FVector NewLocation = GetActorLocation(); // Actor의 위치 값 불러오기
float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime)); // 상하운동
NewLocation.Z += DeltaHeight * 20.0f; // Z 축 운동 범위
RunningTime += DeltaTime; // 경과 시간에 따라 값이 바뀜
SetActorLocation(NewLocation); // 연산된 위치 값 다시 넣어주기

ezgif com-gif-maker

Event

  • BeginPlay();
    Unity의 Start()와 같이 게임 시작시 호출되는 메서드 이다.

  • Tick();
    Unity의 Update()문과 같이 매 프레임 호출되는 메서드 이다.
    생성자에서 다음과 같이 끄고 킬수 있다.

    PrimaryActorTick.bCanEverTick = true;
    PrimaryActorTick.bCanEverTick = false;