인 게임에서 미디어를 재생하다가 중간에 특정한 위치로 이동해야할 필요가 있다.
이때 유튜브에서 쉽게 볼 수 있는 플레이 바를 이리저리 움직이는 기능을 구현하고 싶을텐데,
언리얼 엔진에서는 Seek 라는 함수를 통해 이 기능을 제공 한다.
UMediaPlayer::Seek | Unreal Engine Documentation
오늘은 UMediaPlayer::Seek 함수를 사용하는 방법에 대해 간단히 알아보겠다.
Media 열기
우선 간단히 오디오 파일을 열 수 있도록 구현해보겠다.
void AMusicSelectPawn::BeginPlay()
{
MediaPlayer = NewObject<UMediaPlayer>();
MediaSoundComponent->SetMediaPlayer(MediaPlayer);
MediaPlayer->OnMediaOpened.AddDynamic(this, &AMusicSelectPawn::OnSampleMediaOpened);
}
UMediaPlayer 객체를 만들고, MediaSoundComponent 에 플레이어를 설정한다.
그리고 미디어가 열렸을 경우 호출 받을 수 있는 콜백함수도 하나 준비한다.
void AMusicSelectPawn::OnSampleMediaOpened(FString OpenedURL)
{
MediaPlayer->Play();
if(MediaPlayer->SupportsSeeking())
{
FTimespan TimeSpan(0,0,5);
MediaPlayer->Seek(TimeSpan);
}
}
미디어가 열렸다면 이제 Seek 를 통해 이리저리 위치를 옮길 수 있다.
UMediaPlayer::SupportsSeeking() 은 Seeking 을 지원하는지를 반환한다.
UMediaPlayer::SupportsSeeking | Unreal Engine Documentation
옮길 위치를 정하는게 중요한데, FTimespan 구조체를 새로 만들고 생성자를 호출 할 때 설정 할 수 있다.
FTimespan TimeSpan(HOUR,MIN,SECONDS);
참고로, 생성자 관련 코드는 오버로딩되어 있으므로, 해당 구조체 코드를 열어보면 쉽게 가늠 할 수 있다.
'볼봇의 코딩 생활 > 언리얼한 엔진' 카테고리의 다른 글
[UE4] UE_LOG 로 Logging 하기 (1) | 2021.03.20 |
---|---|
.uproject 파일이 연결되지 않는 경우. (2) | 2021.03.19 |
UE4 UMG 웹 이미지 띄우기 (1) | 2021.01.08 |
UE4 구글 플레이 게임 업적 연동 하기 (0) | 2020.12.18 |
UE4 안드로이드 무선 디버깅 & 디플로이 (0) | 2020.12.13 |