게임 인스턴스 서브 시스템으로 오디오 서브 시스템을 구성하는 도중에 DataTable에서 행을 찾고 배열에 등록하는 함수와 AudioComponent로 사운드를 재생시키는 함수가 필요함
// UDataTable.h
template<typename RowStructType>
const RowStructType* FindRow(
const FName& RowName,
const FString& ContextString,
bool bWarnIfMissing = true
) const;
USTRUCT(BlueprintType)으로 선언되어 있어야 하며, UDataTable의 RowStruct속성으로 지정된 UScriptStruct와 일치해야 한다.TEXT("PlayBGM AudioSubsystem")처럼 클래스 함수명을 적어줌RowName이 데이터 테이블에 없을 때, UE_LOG(Warning)를 띄울지 여부를 결정false로 하면 경고 로그 없이 nullptr만 반환-> 행 존재 여부를 검사 후 존재하면 포인터를 반환
언리얼 엔진의 UGameplayStatics에 정의된 유틸리티로, 2D(비거리감쇠) 사운드를 재생하기 위해 UAudioComponent를 동적으로 생성하고 반환해 줍니다. 반환된 컴포넌트를 통해 재생, 중지, 볼륨·피치 조절 등 세밀한 제어가 가능합니다.
static UAudioComponent* CreateSound2D(
UObject* WorldContextObject,
USoundBase* Sound,
float VolumeMultiplier = 1.0f,
float PitchMultiplier = 1.0f,
float StartTime = 0.0f,
USoundAttenuation* AttenuationSettings = nullptr,
bool bPersistAcrossLevelTransition = false,
bool bAutoDestroy = true
);
this나 GetWorld()USoundBase에셋, 널이거나 유효하지 않으면 컴포넌트도 생성되지 않습니다.nullptrNewObject<UAudioComponent>(WorldContextObject)형태로 UAudioComponent인스턴스를 만든다.SetSound(Sound), 볼륨-피치-시작시간-감쇠설정 등을 세팅AudioComponent->ResisterComponent()호출로 씬(월드)에 붙입니다.Play()를 직접 호출하거나, bAutoActive=true시점에 자동 재생