김김김의 게임개발
  • Unity 게임 개발 #9 - 카드 매칭 게임<Teammate-Cardgame> 5
    2023년 08월 10일 21시 14분 41초에 업로드 된 글입니다.
    작성자: noun06

    유니티를 사용하여 개발한 카드 맞추기 게임입니다. 팀 미니 프로젝트로 진행하였습니다.


    1. 카드 매칭 버그

    • 카드 클릭 후 스페이스 혹은 엔터키를 누르면 카드가 매칭 처리되는 버그.(키보드 입력을 전혀 구현하지 않은 상황)
    • 카드 프리팹의 버튼 컴포넌트 중에서 navigation을 none으로 하면 키보드 입력을 받지 않음으로 일시적 해결.

    • VS 팁 : f12와 shft f12를 눌러 각 함수가 여러 스크립트 중 어디서 사용되었는지 확인 가능함.

     

    2. 버튼 효과음

    • 버튼에 효과음을 추가하였고 슬라이더에 float value를 넣어 크기 조절이 가능하게 세팅. 
    //AudioManager.cs
    
    public class AudioManager : MonoBehaviour
    {
        public AudioClip sfx;
        public AudioSource sfxAudioSource;
    	//...
        public void PlaySFX() //버튼 클릭 효과음
        {
            sfxAudioSource.clip = sfx;
            sfxAudioSource.PlayOneShot(sfx);
        }
    
        public void SetSFXVolume(float volume) //슬라이더에 연결
        {
            sfxAudioSource.volume = volume;
        }
    }

     

    • 다음 씬으로 넘어가는 버튼의 경우 소리가 들리기도 전에 씬 로드가 되어 문제 발생. 
    • 코루틴을 통해 씬 로드되는 타이밍을 늦춰서 버튼 소리가 들리게 세팅.
    //sceneManager.cs
    
    public class sceneManager : MonoBehaviour
    {
        public AudioManager audioManager;
    	//...
        public void LevelSelect()
        {
            audioManager.PlaySFX();
            StartCoroutine("LoadSceneWithDelay"); // 버튼 사운드 재생 후 씬 로드
        }
    
        private IEnumerator LoadSceneWithDelay()
        {
            yield return new WaitForSecondsRealtime(0.4f);
            SceneManager.LoadScene("LevelSelect");
        }
        //...
    }

     

    3. 전반적 게임 UI 수정

    각 씬 마다의 통일성이 있는 UI로 게임의 디자인을 개선함. 버튼의 경우 프리팹화하여 재사용함.

     

    4. 결과물

     

     

    댓글