728x90
SMALL
지금 모든 스네이크들에서 LV을 표시해주고 있다.
하지만 문제점이 하나 있다.
문제점
- 각 객체마다 한개의 Canvas를 가지고 있다.
이렇게 사용돼서 객체가 많아지면 성능저하가 될 수 있다.
Canvas하나로 스네이크들의 LV을 관리하는 식으로 수정해보자.
1. 하나로 관리할 Canvas 생성 - World Space
2. 캔버스에서 레벨 표시및 관리할 스크립트 생성 및 수정(UIViewFloatingHUD.cs)
UIViewFloatingHUD.cs - Unity 게임 내에서 플레이어와 적 스네이크의 레벨 및 상태 정보를 화면에 HUD 형태로 표시하기 위함
- HUD 생성 및 초기화:
- Initialize 메서드는 스네이크 트랜스폼을 기반으로 HUD를 생성하여 레벨을 초기 설정하고, 해당 HUD가 플레이어인지 적인지에 따라 다른 리스트에 저장한다.
- HUD 삭제:
- 적 스네이크가 제거될 때 해당 스네이크의 HUD도 삭제하여 HUD 정보가 남지 않도록 관리한다.
- 레벨업 UI 업데이트:
- 플레이어 또는 적 스네이크가 레벨업할 때, HUD에 있는 레벨 표시도 업데이트하여 변화된 레벨을 시각적으로 반영합니다.
3. 레벨을 표시해줄 레벨 텍스트 프리팹 생성
4. 레벨 텍스트에서 표시할 정보.. 를 관리할 스크립트 생성 및 수정(LevelText.Cs)
FloatingHUDLevel.cs - HUD의 텍스트가 플레이어나 적 스네이크를 따라다니며 실시간으로 레벨 정보를 표시하는 것을 목적
HUD 표시 위치 및 추적:
- LateUpdate에서 followTarget의 위치를 따라 HUD가 이동하며, 카메라의 방향을 따라 HUD 텍스트가 카메라를 향하게 한다.
HUD 초기화:
- Init 메서드는 HUD가 표시될 캐릭터를 따라다니도록 설정하며, 플레이어와 적의 레벨에 따라 색상을 구분해 HUD를 초기화한다.
레벨 표시 업데이트:
- SetLevel 메서드와 LevelUp 메서드로 캐릭터의 현재 레벨을 UI에 반영하여, 유저가 레벨 변화를 확인할 수 있다.
HUD 제거:
- 캐릭터가 제거될 때 DestroyHUD 메서드를 통해 HUD 객체도 제거하여 UI 정리를 수행한다.
결과
728x90
'프로젝트 > 스네이크 프로젝트' 카테고리의 다른 글
[스네이크] - 로비 만들기(닉네임 생성 및 게임 시작) - 게임 시작 UI (1) | 2024.12.05 |
---|---|
[스네이크] - 플레이어, 적 닉네임 표시 (0) | 2024.11.29 |
[스네이크] - 플레이어, 적 Lv표시 (0) | 2024.11.20 |
[스네이크] - 적 만들기(NavMeshAgent 활용) (1) | 2024.11.08 |
[스네이크] - NavMeshAgent 사용하기 위한 세팅 (3) | 2024.11.07 |