하늘을 떠다니는 구름이 게임을 더 생동감 있게 만들 것이다.
Clouds와 CloudManaer 스크립트를 새로 만든다.
Clouds 스크립트에서는 구름의 움직임을 정의하고, CloudManager에서는 게임이 시작할 때 구름이 생성되도록 한다.
CloudManager에 스폰될 위치를 넣으면 Clouds의 프로퍼티에도 똑같이 들어가게 된다.
이렇게 하는 이유는 구름이 프리팹으로 저장되어 있기 때문에 씬에 배치되어 있는 오브젝트의 위치값을 참조할 수 없기 때문이다.
Cloud 오브젝트를 만들고 Box Collider 2D, Rigidbody 2D, Clouds 스크립트를 추가한다.
Body Type은 Kinematic으로 설정하여 물리 엔진의 영향을 받지 않도록 했다.
대부분 Dynamic을 사용했었는데 Kinematic은 약간 차이점이 있다.
Dynamic이 중력과 힘의 영향을 받는다면 Kinematic은 직접 코드로 움직여야 한다.
Static은 아예 움직이지 않는다.
- Dynamic: 중력과 힘을 받는 객체 (플레이어, 적, 물리 오브젝트)
- Kinematic: 코드로만 움직이는 객체 (엘리베이터, NPC 이동)
- Static: 완전히 고정된 객체 (벽, 바닥, 장애물)
Cloud는 Trigger가 발동되면 spawnPosition으로 돌아오도록 했기 때문에
빈 오브젝트로 KillZone을 만들어야 한다.
Box Collider2D 컴포넌트를 추가하고 Is Trigger에 체크만 해주면 된다.
항상 같은 곳에서 구름이 등장하면 재미없기에 y값에 Random.Range 함수를 이용해 생성 위치를 약간 변경했다.
이제 마지막인 통화 시스템을 구현할 차례이다.
게임에서 재화가 셀 수 없을 정도로 많으면 1K, 1M 처럼 표시되므로 똑같이 구현해볼 것이다.
다른 클래스에서 호출해야 하므로 static으로 만들고, 형식을 반환해야 하기 때문에 문자열 형식이다.
다른 스크립트에서 호출해보니 아주 잘 작동한다.
이제 UI 패널에서 골드를 표시하는 부분을 모두 이 함수를 통해서 변환되도록 한다.
DisplayCurrency가 정적이기 때문에 어디서든 사용할 수 있다.
업그레이드 패널을 열어보면 위과 같이 변환되어 표시된다.
강의 출처: #50 Currency System (Unity Tutorial | Tycoon idle game) - YouTube
'유니티' 카테고리의 다른 글
[유니티] #1 수박 게임 만들기 (최적화) (0) | 2025.02.15 |
---|---|
[유니티] 디자인 패턴 : 오브젝트 풀링 (Object Pooling) (0) | 2025.02.15 |
[유니티] #17 광부 타이쿤 게임 만들기 (샤프트 매니저 부스트) (0) | 2025.02.08 |
[유니티] #16 광부 타이쿤 게임 만들기 (부스트) (0) | 2025.02.07 |
[유니티] #15 광부 타이쿤 게임 만들기 (매니저, Mask, RayCast) (0) | 2025.02.05 |