티스토리 뷰

이전 프로젝트 생성 및 액터 생성 부분은 공식 문서 참고하기.

docs.unrealengine.com/ko/ProgrammingAndScripting/ProgrammingWithCPP/CPPProgrammingQuickStart/index.html

 

프로그래밍 퀵스타트

첫 코드 프로젝트를 만들고, C++ 클래스를 새로 추가해 봅니다.

docs.unrealengine.com

	FVector NewLocation = GetActorLocation();

	float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
	
	NewLocation.Z += DeltaHeight * 20.0f;

	RunningTime += DeltaTime;

	SetActorLocation(NewLocation);

Tick에 위 코드를 작성한다.

 

Tick()

매 프레임 엑터를 업데이트 하는데 사용된다.

보통 한 프레임에 한 번 스크립트를 실행.

주기를 매 프레임 혹은 최소 시간 간격으로 설정할 수도 있고, 안할 수도 있다.

 

추가로 엔진의 프레임 단위 업데이트 루프 내 다른 페이즈와도 같은 그룹으로 묶어,

특정 틱 완료까지 기다린 후 시작 가능

 

# 프레임 단위 업데이트 루프가 존재하나 봄.
# UE4 액터 틱 공식 문서 참고

 

DeltaHeight

RunningTime 변수는 이 프로젝트가 실행된 시간을 기록한 것

DeltaTime을 더해 이전 프레임에서 현재 프레임까지 걸린 시간을 더해준 값을

Sin하면 -1 ~ 1 사이가 나오게 된다. 이 값에 * 20.f를 해줘 더 큰 폭으로 Actor가 움직일 수 있게 해준다.

 

GetActorLocation()

현 Actor의 루트 컴포넌트 기준 Location을 반환한다.

변수명.X , 변수명.Y .. 이렇게 접근해서 변경.

실제 Actor에 반영하기 위해서는 SetActorLocation(변수명)을 호출해야 한다.

 

 

DeltaTime이란

한 프레임 당 실행하는 시간을 의미

즉, 이전 프레임에서 현재 프레임이 나오기까지의 시간을 의미한다.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함