1인 개발/숫자의 신

숫자의 신 개인 프로젝트 11일차

잼잼재미 2024. 8. 12. 20:54

구현 내용


1. Shop 구현


 

  • 1회, 10회 구매 구현

 

 

Shop 스크립트

public void BuyNumberButton(int count)
{
    _count = count;

    while (true)
    {
        int value = Random.Range(0, 50);

        if (GameManager.I.DataManager.GameData.InventoryNumbers[value])
        {
            break;
        }
        else
        {
            GameManager.I.DataManager.GameData.InventoryNumbers[value] = true;
            break;
        }

    }
}

public void BuyCompleteButton()
{
    int count = _count;
    count--;
    _count = count;

    if (count > 0) BuyNumberButton(count);
}

 

BuyNumberButton의 매개변수를 사용해서 유니티 인스펙터의 Button에 적용했다. 매개변수에 따라 int형 전역변수를 변경해주고, 이 변수의 값이 0이 될때 까지 반복하여 여러번 구매를 하도록 구현했다.

 

 

2. 설정 구현


User Name 변경

 

Input Field - TextMeshPro 를 통해 DataManager의 UserName을 변경하도록 구현했다.

 

https://kkln2486.tistory.com/134

 

캐릭터 이름 입력창 만들기 (Input Field - TextMeshPro)

using UnityEngine.UI; using TMPro; [SerializeField] TMP_Text text; [SerializeField] TMP_InputField inputField; [SerializeField] GameObject gameStartPanel; // 매개변수는 string만 사용 가능 public void PlayerNameInput() { tmpText.text = inputField.

kkln2486.tistory.com

 

 

캐릭터 변경

 

Sprite 배열로 각각 이미지를 저장하고, 버튼을 통해 DataManager의 Image 값을 변경하도록 구현했다.

 

 

데이터 삭제

 

저장된 모든 데이터를 삭제하고 게임 종료

 

 

사운드 조절 

 

슬라이더 바를 통해 AudioMixer의 값을 조절했다. 조절한 값은 PlayerPrefs를 통해 로컬 저장했다. 그리고 게임 시작 시, PlayerPrefs의 값을 불러와 사운드 값을 적용했다. 이전 프로젝트에서 구현했던 방법을 참고했다.

 

https://kkln2486.tistory.com/155

 

사운드 슬라이더 바 만들기

1. 슬라이더 추가  볼륨은 -80~20까지 존재하지만, -40~0까지만 사용함 (-40 이하는 거의 들리지 않고, 0 이상은 음악이 깨짐)  2. AudioSource 준비  3. AudioMixer 설정Mixers 이름 설정Master - BGM, SFX 그룹으

kkln2486.tistory.com

 

 

회고


오늘은 상점을 구현하고, 로비의 Setting을 모두 구현했다. Setting에서 설정할 수 있는 사운드, UserName, 이미지, 데이터 삭제 등을 구현했다. 모두 이전 프로젝트에서 구현한 적이 있었기 때문에 어렵지 않았다. 상점도 Random.Range 함수를 통해 랜덤수를 받아와서 쉽게 구현했다. 이제 로비에서는 랭킹 시스템만 구현하면 모두 끝이다. 랭킹 시스템을 구현하기 전, 게임 종료 UI를 생성하고 해당 점수를 DataManager에 저장하게 구현하도록 하겠다.