여섯 번째 실습 과제를 풀어보았습니다!
- 각각 StaticMeshComponent를 가지며, 맵에 배치 가능한 형태여야 합니다.
- 두 클래스는 서로 다른 동작 로직을 수행해야 합니다.
- 회전 기능
Tick(float DeltaTime)에서AddActorLocalRotation()사용하여 매 프레임 회전 처리
- 이동 기능
Tick(float DeltaTime)에서 위치를 변경하여 왕복 이동 구현MoveSpeed,MaxRange,StartLocation등을 고려해 일정 범위를 벗어나면 이동 방향을 반전시키는 로직 구성
- 프레임 독립성
- 이동/회전 시 반드시
DeltaTime을 활용하여 하드웨어 성능에 관계없이 일정한 움직임을 보장해야 합니다.
- 이동/회전 시 반드시
- 주요 변수 (회전 속도, 이동 속도, 이동 범위 등)를
UPROPERTY로 선언하여 에디터에서 조정 가능하게 만들어야 합니다. EditAnywhere,BlueprintReadWrite,Category등을 적절히 활용하여 Details 패널에서 편집 가능하게 만듭니다.- 플레이 중 Details 패널에서 값 변경 시 즉시 반영되는지 확인합니다.
- 타이머 활용
FTimerHandle과GetWorld()->GetTimerManager().SetTimer(...)를 사용해 특정 시간 후 또는 주기적으로 함수를 호출합니다.- 매 프레임 호출(
Tick)보다 효율적인 퍼포먼스를 제공합니다.
- 시간 기반 로직 구현
- 일정 시간 후 액터터가 사라지는 로직을 추가합니다.
- 동적 스폰
- 게임 시작 시
SpawnActor를 통해 회전/이동 액터을 임의 좌표에 여러 개 배치합니다. - 랜덤 스테이지의 기초 개념을 체험할 수 있습니다.
- 게임 시작 시
- 랜덤 속성 부여
- 회전/이동 속도, 이동 범위를
FMath::RandRange로 생성하여 매번 다른 퍼즐 코스를 구성합니다.
- 회전/이동 속도, 이동 범위를