Unity

1. 카드 게임 만들면서 배운 것 정리(1)

psb08 2024. 6. 27. 16:12
728x90

사용 폰트 : https://neodgm.dalgona.dev/

사용 리소스 그림 : https://drive.google.com/file/d/1McVb...

 

저희는 TMP를 사용할 것이기 때문에 Txt 폰트를 TMP로 바꿔야 합니다.

먼저 Window > Package Manager > Unity Registry 로 가서 TextMeshPro를 검색하여 다운로드 해줍니다.

Window > Package Manager > TextMeshPro

그 다음 유니티 Window 창에서 TextMeshPro를 선택하고 Font Asset Creator를 선택 한 뒤

 

TextMeshPro > Font Asset Creator를 켜줍니다.

 

기본 Txt 폰트를 Font Asset Creator 맨 위에 있는 Source Font File에 넣습니다.

기본 Txt 폰트를 넣어줍니다.

넣은 후 Sampling Point Size는 Auto Sizing으로 바꿔줍니다.

Padding 은 5로 해주시면 됩니다.

Packing Method는 Fast로 Atlas Resolution은 4096 4096으로 맞춰주시면 됩니다.

그리고 Character Sequence 에 32-128,44032-55203을 적어주세요.

영어 범위가 32-126이고 한글 범위가 44032-55203이라고 합니다.

한글 자모는 12593-12643 이며 특수문자는 8200-9900입니다.

 

Render Mode는 SDF32가 좋다고 합니다.

 

Generate Font Atlas를 눌러줍니다.

엄청 오래 걸리니 기다려 주시면 됩니다.

Save as를 누른 뒤

Assets에 Font 폴더를 추가한 뒤 넣어줍니다.

 

그 다음으로 리소스를 세팅하도록 하겠습니다.

다운 받은 리소스를 Assets에 Sprite폴더를 만든 뒤 전부 넣어줍니다.

그리고 Card와 Shock 그리고 z를 ctrl로 클릭 한 후 

Pixel per unit은 16

Filter Mode는 Point(no filter)로 하고

Default를 클릭 한 후 Max size 2048

Resize Alogrithm을 Mitchell

Format을 Automatic Compression을 None으로 바꿔줍니다.

 

이제 card 만 따로 클릭 후 SpriteMode를 Multiple로 바꿔줍니다.

Sprite Editor를 클릭 한 후

이렇게 모두 나누어 줍니다.

그 다음 DOTween을 사용하기 위해 다운로드를 해 주어야 합니다.

Window > Asset Store

Window > Asset Store에 들어가서

Search online을 클릭 후

검색 창에 Dotween을 검색해 줍니다.

 

다운로드 후 Unity에서 열기 UnityEditor 열기 후 Import 해 줍니다.

 

Open DOTween Utility Panel 클릭

 

Setup DOTween을 해줍니다. 그 다음 닫아주시면 됩니다.

 

그다음 SO를 사용해서 카드를 관리해줄 겁니다.

 

Assets에 Scripts 폴더를 만든 후 

ItemSO라는 스크립트를 만들어 줍니다.

 

이렇게 적어주겠습니다.

 

Item class를 만들고

그 위에 

[System.Serializable]을 적은 후

 

클래스 안에

public string name;

public int attack;

public int health;

public Sprite sprite;

public float percent;

를 적어줍니다. (카드의 이미지와 능력치, 카드가 나올 확률입니다)

 

ItemSo class 위에 

[CreateAssetMenu(fileName = "ItemSO", menuName = "Scriptable Object/ItemSO")]

를 적은 후

class ItemSO에 Scriptable Object를 상속시켜 주고

public Item[] item;을 적어줍니다. (배열 생성)

 

순서대로 이름,공격력,체력,이미지 스프라이트,카드가 뽑힐 확률을 적었습니다.

그리고 이것들을 담는 배열을 만들었습니다.

 

[System.Serializable]은 직렬화를 가능하도록 만들어 줍니다.

[CreateAssetMenu(fileName = "ItemSO", menuName = "Scriptable Object/ItemSo")는

SO의 AssetMenu를 만들고 fileName을 ItemSo로 만듭니다.

menuName은 SO가 있는 경로를 만들어 줍니다.

 

Assets에 가서 확인 해 보면

Create > 아까 생성한 Scriptable Object > ItemSO가 생긴 모습입니다.

Assets > Create > Scriptable Object > ItemSO로 생긴 것을 확인 할 수 있습니다.

728x90