이전에 낮과 밤을 구현한적 있는데 그곳에서 필요한 코드들을
공용시간으로 돌리기 위해 GlobalTimeManager 스크립트를 하나 만들었다.
Start부분 부터 살펴 보면 _timeRate = 1.0f / FullDayLength; 라고 적혀있다.
FullDayLength에 입력한 값을 나중에 퍼센트로 바꿔서 사용하기 위해 1f로 나눠주는 모습이다.
다음은 Update부분에 DayTime = (DayTime + _timeRate * Time.deltaTime) % 1.0f;
위에서 만든 _timeRate를 Time.deltaTime에 곱하고 현재시간을 더해준다.
그 값의 1f로 나눠서 나오는 나머지 값으로만 DayTime를 측정하기 때문에 값은
0~0.999.. 까지 밖에 나올 수 가 없다.
여기까지는 전에 만들어 둔 내용이고 오늘 팀원과 상의 해본 결과
UI에 표시되는 시간을 24시에 맞게 표현하는게 좋을 거 같다고 해서
그에 맞게 코드를 추가 했다.
전체시간, 시간, 분까지 변수로 만들어 두고
Update에서 처리 해줬다.
먼저 0 ~ 0.9999까지 돌아가는 시간을 * 24 해서 전체 시간에 담아주고
그 시간을 Mathf.Floor() 메서드에 담아서 시간으로 만들었다.
여기서 Mathf.Floor()는 메서드안에 담겨있는 숫자를 내림 해주는 함수이다.
전체시간이 12.1124124 이런식으로 찍히고 13에 갈때까지 현재시간이 12로 되는 방식이다.
다음으로 Minutes에는 전체시간에서 현재시간을 빼고 * 60을 해주어서 남은시간중 60분을
표현했다.
'Today I Learned' 카테고리의 다른 글
[내일배움캠프] 실전 프로젝트 - Terrain으로 맵 만들어보기 (1) | 2024.01.25 |
---|---|
[내일배움캠프] 실전 프로젝트 - 인벤토리 만들기 (0) | 2024.01.24 |
[내일배움캠프] 실전 프로젝트 - 기술면접 연습 3 (0) | 2024.01.19 |
[내일배움캠프] 실전 프로젝트 - 기술면접 연습 2 (0) | 2024.01.18 |
[내일배움캠프] 실전 프로젝트 - AI Navigation (0) | 2024.01.17 |