공부/Unity

[Unity] Player 효과음 주기 (Audio Source, Audio Clip)

돌멩이수프 2025. 6. 3. 15:53
728x90

 

플레이어가 점프를 하거나 공격을 할 때 효과음을 주고 싶다면 코드에서 Audio Source와 Audio Clip을 조작하면 된다.

 

 

소리를 주고 싶은 GameObject에 Audio Source 컴포넌트를 추가해준다. 소리가 계속 나오게 할 거라면 Audio Resource에 바로 음악 파일을 넣어주면 되지만 우리는 점프할 때 효과음을 주고 싶으니 빈 칸으로 둔다.

기본적으로 Play On Awake가 체크된 상태일 텐데 이렇게 하면 오브젝트가 생성되는 순간 효과음이 나오기 때문에 체크를 해제해준다.

 

public class PlayerController : MonoBehaviour
{
    AudioSource _audioSource;
    AudioClip _audioClip;

    void Start()
    {
        _audioSource = GetComponent<AudioSource>();
    }

    void FixedUpdate()
    {
        Moving();
    }

    protected virtual void Moving()
    {
        if (Input.GetKey(KeyCode.W) && _isGround && !_isJump)
        {
            _audioClip = Resources.Load<AudioClip>("Sound/Jump");
            _audioSource.clip = _audioClip;
            _audioSource.Play();
        }
    }
}

 

PlayerController에서 당장 필요한 부분만 꺼내왔다.

음악 자체를 조절하는 AudioSource와 필요한 음악을 골라와줄 AudioClip을 변수로 두고 사용한다.

점프를 하는 순간 AudioClip을 Resources/Sound/Jump로 변경하고 AudioSource의 클립을 해당 음악으로 변경한다.

AudioSource를 플레이하면 캐릭터가 점프하는 순간 효과음이 재생된다.

728x90