본문 바로가기
유니티

[유니티] #3 수박 게임 만들기 (사운드, 애니메이션, 이펙트)

by 인디제이 2025. 3. 4.

 

사운드 (BGM, SFX)

 

더 생동감 있는 게임을 위해 사운드를 추가했다.

 

using UnityEngine;

public class SoundManager : MonoBehaviour
{
    [Header("references")]
    [SerializeField] private AudioClip bgmClip;
    private AudioSource _audioSource;

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

    public void PauseBGM()
    {
        _audioSource.Pause();
    }

    public void ResumeBGM()
    {
        _audioSource.UnPause();
    }
}

 

사운드를 제어하는 스크립트인 SoundManager 스크립트를 만들어 게임 내 BGM을 관리하도록 했다.

이전에는 AudioListener.pause = true;로 모든 사운드를 일시 정지했지만,

이제는 SoundManager를 통해 BGM을 개별적으로 일시 정지하거나 재개할 수 있도록 했다.

 

 

 

게임 오버 시 효과음, 버튼 클릭 시 소리, NPC 요청 성공과 실패 시 소리를 추가했다.

각 효과음은 소리가 겹칠 수 있으니 해당 스크립트에 넣어줬다.

 

 

 

 

 

애니메이션

 

애니메이션을 추가하여 캐릭터가 더 생동감 있게 움직이도록 했다.

 

 

기본적인 Idle 애니메이션은 캐릭터가 숨 쉬는 것처럼 머리의 Y 값을 조금씩 변화시키고,

눈을 감았다 떴다 하는 애니메이션을 만들었다.

빠르게 눈을 감고 뜨기 때문에 자세히 보지 않으면 눈을 찌그러트린 게 티가 나지 않는다.

 

눈을 감을 때 눈썹은 아래로 내려가고, 수염은 약간 올라가도록 해서 애니메이션이 더 자연스럽게 보이도록 했다.

 

 

 

 

 

이펙트

 

 

NPC 요청이 성공했을 때 나오는 애니메이션에 이펙트를 추가했는데,

요청 성공 시 이펙트가 나타나면서 커졌다 작아졌다 하는 애니메이션을 만들었다.

Idle 상태에서는 비활성화하고, Complete 상태에서는 활성화되어 이펙트가 나타나도록 설정했다.

 

 

 

 

 

SpriteAtlas 수정

 

 

SpriteAtlas에 사용한 Sprite를 모두 넣으니 경고 메세지가 나온다.

압축을 하지 말라는 걸로 번역된다.

 

 

 

Compression을 None으로 바꾸고, Format은 Automatic으로 설정했다.

모바일 환경에서 Override For Android에 체크 되어있는 것도 모두 풀었다.

 

 

게임을 실행하는 동안 Batches 값이 16 정도로 나온다.

이 값은 게임이 화면을 렌더링할 때 발생하는 드로우 콜의 수를 의미한다.

Batches 값이 높으면 성능에 부담을 줄 수 있는데, 스켈레톤 애니메이션을 사용했다면 더 최적화가 가능했을 것 같다.

 

 

 

현재까지 만든 결과는 이렇다.