SoundComponent

효과음 또는 배경음악을 재생하고 관리합니다.

# Properties

[{"index":"string AudioClipRUID (Sync)","0":"음원 재생에 사용할 AudioClipRUID를 설정합니다."}]

[{"index":"boolean Bgm (Sync)","0":"배경음악으로 재생될지 여부를 설정합니다."}]

[{"index":"float HearingDistance (Sync)","0":"소리가 들리는 리스너 엔티티와의 최대 거리를 설정합니다."}]

[{"index":"boolean KeepBGM (Sync)","0":"이전 BGM과 현재 BGM이 같다면 음원을 이어서 재생합니다. Bgm, PlayOnEnable 프로퍼티가 true이고 SoundComponent가 활성화될 때 적용됩니다.SoundService의 PlayBGM() 함수들로 호출할 때는 BGM이 이어서 재생되지 않습니다."}]

[{"index":"boolean Loop (Sync)","0":"반복 재생 여부를 설정합니다."}]

[{"index":"boolean Mute (Sync)","0":"음소거 상태를 설정합니다."}]

[{"index":"float Pitch (Sync)","0":"음원의 음높이와 재생 속도를 설정합니다. 값이 커질수록 음높이가 높아지며, 재생 속도가 빨라집니다. 0 이상, 3 이하의 값만 설정할 수 있습니다."}]

[{"index":"boolean PlayOnEnable (Sync)","0":"Enable이 활성화될 때 음원 재생 여부를 설정합니다."}]

[{"index":"boolean SetCameraAsListener (Sync)","0":"화면의 중앙과 음원 사이의 거리에 따라 소리 크기를 조절합니다. SetListenerEntity 함수를 통해 따로 지정한 리스너 엔티티가 있을 때는 이 프로퍼티의 활성 여부와 관계 없이 해당 엔티티가 리스너가 됩니다."}]

[{"index":"float Volume (Sync)","0":"음량을 설정합니다. 0 이상, 1 이하의 값만 설정할 수 있습니다."}]

##### inherited from Component:

[{"index":"boolean Enable (Sync)","0":"컴포넌트 활성화 여부를 확인합니다."}]

[{"index":"boolean EnableInHierarchy (ReadOnly) (HideFromInspector)","0":"계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니다. Enable이 true일지라도 엔티티의 Enable이 false라면 false를 반환합니다."}]

[{"index":"Entity Entity (ReadOnly)","0":"이 컴포넌트를 소유한 엔티티입니다."}]

# Methods

[{"index":"float GetTimePosition() (ClientOnly)","0":"음원의 현재 재생 위치를 초 단위로 반환합니다. 오디오 클립이 로드되지 않은 경우 -1을 반환합니다."}]

[{"index":"float GetTotalTime() (ClientOnly)","0":"음원의 전체 길이를 초 단위로 반환합니다. 오디오 클립이 로드되지 있지 않은 경우 -1을 반환합니다."}]

[{"index":"boolean IsAudioClipLoaded() (ClientOnly)","0":"AudioClipRUID에 설정한 오디오 클립이 로드되어 있는지 여부를 반환합니다. GetTimePosition(), GetTotalTime(), SetTimePosition(timeInSecond, targetUserId) 함수는 오디오 클립이 로드되어 있지 않은 경우 실행할 수 없습니다."}]

[{"index":"boolean IsPlaying(string targetUserId = nil) (Client)","0":"음원이 재생 중인지 여부를 확인합니다."}]

[{"index":"boolean IsSyncedPlaying() (ClientOnly)","0":"동기화되는 음원이 재생 중인지 여부를 확인합니다. PlaySyncedSound가 호출된 이후, 따로 StopSyncedSound를 호출한 경우나 음원이 끝까지 재생되어 정지된 경우가 아니라면 true를 반환합니다."}]

[{"index":"void Pause(string targetUserId = nil) (Client)","0":"음원 재생을 일시 정지합니다."}]

[{"index":"void Play(string targetUserId = nil) (Client)","0":"음원을 재생합니다."}]

[{"index":"void PlaySyncedSound() (Server)","0":"동기화되는 음원을 재생합니다. BGM 프로퍼티가 true인 경우 작동하지 않습니다."}]

[{"index":"void Resume(string targetUserId = nil) (Client)","0":"음원 재생을 재개합니다."}]

[{"index":"void SetListenerEntity(Entity entity, string targetUserId = nil) (Client)","0":"리스너 엔티티를 설정합니다. 리스너 엔티티와의 거리가 멀어질 수록 음량이 작아집니다."}]

[{"index":"void SetTimePosition(float timeInSecond, string targetUserId = nil) (Client)","0":"재생 위치를 변경합니다. 초 단위를 사용합니다. 오디오 클립이 로드되지 않은 경우 동작하지 않습니다."}]

[{"index":"void Stop(string targetUserId = nil) (Client)","0":"음원 재생을 정지합니다."}]

[{"index":"void StopSyncedSound() (Server)","0":"동기화되는 음원 재생을 정지합니다."}]

##### inherited from Component:

[{"index":"boolean IsClient()","0":"현재 실행 환경이 클라이언트인지 아닌지의 여부를 반환합니다."}]

[{"index":"boolean IsServer()","0":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]

# Events

[{"index":"SoundPlayStateChangedEvent","0":"SoundService의 BGM, SoundComponent의 효과음 재생 상태가 변경될 때 발생하는 이벤트입니다."}]

# Examples

음원 리소스(AudioClipRUID)를 설정하고 로컬 플레이어를 리스너로 선택합니다.  
SoundComponent 위치로 다가갈수록 설정한 소리가 커지는 환경을 구성했습니다.
    
    
    @Component
    script EntitySoundLooper extends Component
        @ExecSpace("ClientOnly")
        method void OnBeginPlay()
        self.Entity.SoundComponent.AudioClipRUID = "000000" 
        self.Entity.SoundComponent.Loop = true
        self.Entity.SoundComponent:SetListenerEntity(_UserService.LocalPlayer)
        self.Entity.SoundComponent:Play()
        end
    end
    

# SeeAlso

  * UserService
  * [배경음악 변경하기](/docs?postId=117)
  * [효과음 만들기](/docs?postId=578)