[빌덱 개발 일지] - 게임 비주얼 대폭 개선 및 핵심 시각화 구현!
빌덱 프로젝트, 시각적 완성도 향상에 집중!
오늘은 게임의 시각적 완성도를 높이고 사용자 경험을 개선하는 데 중점을 두었습니다. 배경, UI 요소, 카드 애니메이션, 그리고 덱 시각화 등 다양한 부분에서 개선이 이루어졌습니다.
🛠️ 오늘 구현 및 해결한 주요 내용
- 게임 배경 이미지 추가:
- 단색 배경 대신 고품질의 배경 이미지를 적용하여 게임 분위기를 조성했습니다.
Image컴포넌트의Source Image에 일반Texture가 아닌Sprite타입의 이미지를 할당해야 하는 문제와Sprite Mode설정(Single/Multiple)을 해결했습니다.Canvas의Render Mode를Screen Space - Overlay에서Screen Space - Camera로 변경하고,Order in Layer를 조정하여 배경 이미지가 카드 뒤에 올바르게 렌더링되도록 했습니다.
- UI 요소 디자인 개선 (폰트 및 버튼):
- 폰트 변경: TextMeshPro를 사용하여 게임 테마에 어울리는 새로운 폰트를 UI 텍스트에 적용했습니다. (TextMeshPro 폰트 에셋 생성 및 할당)
- 버튼 스타일링: Kenney UI Pack의 이미지를 활용하여 버튼의 시각적 디자인을 개선했습니다.
- 카드 플레이 시 시각 효과 추가:
- 선택 애니메이션:
CardDisplay.cs에 코루틴을 활용하여 카드를 선택했을 때 짧게 커졌다가 흔들리는 애니메이션을 추가했습니다.IEnumerator사용을 위한using System.Collections;네임스페이스 누락 오류를 해결했습니다.PlayCardAnimation이SetSelected의 스케일 변경을 덮어쓰지 않도록 애니메이션 로직을 수정했습니다.
- 파티클 효과: 카드를 교환(플레이)할 때 파티클 효과가 나타나도록
GameManager.cs에cardPlayParticlePrefab변수와PlayCardParticleClientRpc메서드를 추가하고,SwapSelectedCards()에서 이를 호출하도록 구현했습니다.
- 선택 애니메이션:
- 카드 모양 직사각형으로 변경:
CardPrototype.prefab의 스케일이 런타임에Vector3.one으로 강제 설정되어 직사각형 비율이 유지되지 않던 문제를 해결했습니다.HandDisplay.cs와FieldDeckDisplay.cs에서 카드를 배치할 때card.transform.localScale을new Vector3(0.7f, 1f, 1f)로 명시적으로 설정하여 직사각형 모양을 유지하도록 수정했습니다.
- 덱 및 버린 카드 더미 시각화:
DeckPileDisplay.cs스크립트를 수정하여 메인 덱과 버린 카드 더미가 카드 수에 따라 두껍게 쌓인 것처럼 보이도록 구현했습니다.CardBackVisual.prefab을 활용하여 여러 개의 카드 뒷면 시각화 오브젝트를 생성하고 Z축 오프셋을 주어 쌓이도록 했습니다.- 주요 버그 해결:
CardBackVisual.prefab에 불필요하게 포함되어 있던NetworkObject컴포넌트를 제거하여 네트워크 충돌 오류(GlobalObjectIdHash중복)를 해결했습니다.DeckPileDisplay.cs에서cardBackVisualPrefab변수 선언 오류를 수정했습니다.DeckPileDisplay스크립트가 붙을 오브젝트(DeckPileManager)를 생성하고,Main Deck Position과Discard Pile PositionTransform변수에 적절한 위치 오브젝트를 할당하여UnassignedReferenceException오류를 해결했습니다.CardBackVisual프리팹이 단면으로 렌더링되어 180도 회전 시 투명하게 보이던 문제를 해결하기 위해DeckPileDisplay.cs에서 카드를 회전시키는 코드를 제거했습니다.
🚀 다음 목표
게임의 시각적 완성도가 크게 향상되었습니다. 다음 단계에서는 점수판 기능 구현을 다시 논의하거나, 다른 시각 효과 추가(예: 카드 뽑기/버리기 파티클)를 진행할 수 있습니다.
오늘도 많은 문제들을 해결하며 프로젝트가 한 단계 더 발전했습니다.