본문 바로가기
게임 개발 일지/내일배움캠프 TIL

ogg 파일 사용 / UI - BestScore 만들기

by 빛하_ 2023. 12. 4.

 

 

Unity 게임 개발 입문 
팀프로젝트 : Arkanoid24

 

Unity 음악파일 주의사항

 

음악 파일로 wav.를 사용하면 용량이 너무 커진다.

1~2초 정도의 효과음은 가능하지만, 배경음악 같은 스케일은 wav.로 넣으면 프로젝트가 굉장히 무거워진다.

따라서 잘 압축된 ogg 파일을 이용하는 것이 효율적이다.

 

Game Scene 에 최고 기록을 UI로 띄우기
public class MainSceneUI : MonoBehaviour
  {
    [SerializeField] private TextMeshProUGUI BestscoreText;  
  
    private string KeyName = "BestScore";
    private float bestscore = 0;

    void Start()
    {
     bestscore = PlayerPrefs.GetFloat(KeyName, 0);
     BestscoreText.text = $"최고 기록 : {bestscore.ToString()}";
    }
    private void Update()
    {
     if (Managers.Game.Score > bestscore)
      {
       PlayerPrefs.SetFloat(KeyName, Managers.Game.Score);
      }
  }

 

PlayerPrefs. 를 사용해 로컬에 (개인PC에) bestscore가 기록되도록 함.

초기 bestscore = 0 이며, 이후 score > bestscore 인 경우 bestscore에 string형태로 기록됨.

score는 Managers.Game.Score 에서 가져옴.

 

 

개인과제 피드백

 

- git commit 시 커밋 메시지 컨벤션 참고하기, 구현 내용을 명확히 적기, 구현 단위로 커밋 하기

현재 팀 과제에서 설정한 커밋 메시지 컨벤션에 따라 git commit을 하고 있다.

내용은 간결하고 분명하게 작성하고 있다.

새 기능 추가, 기능 수정 등 작은 단위별로 커밋하고 있다.

개인과제 제출 당시 만든 내용을 한꺼번에 올렸기 때문에 커밋 과정이 좋지 않았는데,

피드백 내용을 개인 과제에서도 적용시키기 위해 노력해야겠다.

 

 

오늘의 회고

 

기록 저장하는 방법 찾아보고 적용하는 데 수 시간이 걸렸다.

하나는 MainScene 자체에 최고 기록을 띄우는 것, 하나는 로비-랭킹 UI에서 기록을 여러 개 띄우는 것.

일단 MainScene에 최고 기록 경신하는 것까지 구현했다.

내일은 특별 플레이 모드 (무한 레벨, 타임어택) 에서 랭크를 순위별로 나타내는 작업을 할 것이다.

Manager 스크립트를 최대한 가볍게 하려고 기능 별로 여러 개 분산시켰더니 bestscore 개발하는 것이 많이 헷갈렸다.

내일도 힘냅시다!

 

 

 

댓글