동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
먼저 유닛을 대량으로 싸움을 붙여봤는데 잘 싸우는 것 같다.
그리고 이제 유닛에게 스킬을 하나씩 넣어주기로 했다.

그리고 스킬을 넣기 전 어떤 상황에 어떤 상태를 만들지 정하기 위해 각 트리거를 enum으로 나누고 시작했다.
그리고 'Effect' Class를 만들고 유닛에게 일어날 상황 3가지를 나누고 'Effect'를 상속시켰다.
Effect_Damage : Effect = 데미지를 주는 상황
Effect_DamageOverTime : Effect = 지속적으로 데미지를 주는 상황
Effect_AddStatus : Effect = 유닛의 스텟을 바꾸는 상황 (힘 버프, 쉴드 증가 등)
그리고 데미지의 종류도 3종류로 나누어 만들었다.

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
동영상을 보면 15씩 지속데미지를 주는 스킬을 쓰는 '궁수', 자세를 취하고 큰 피해를 주는 '마법사', 피해를 막는 쉴드를 전개하는 '중보병'(데미지 0씩 들어가는 상황) 을 볼수있다.
다음으로 유닛을 배치하기위해 이동시키는 것과 UI를 추가했다.
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
유닛 정보를 나타내는 UI는 struct를 만들고 오브젝트에 만들어둔 프리팹을 넣으면 각 UI를 find하고 유닛을 입력하면 값을 보여주도록 했다.
그리고 유닛을 클릭하는 건 아래 타일에 레이어 값으로 마우스 위치의 오브젝트를 찾는 방식을 사용했다.
public GameObject GetMouse_PointToLayer(string layerName)
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit[] hit;
hit = Physics.RaycastAll(ray, 100f);
for (int i = 0; i < hit.Length; i++)
{
if (hit[i].collider.gameObject.layer == LayerMask.NameToLayer(layerName))
{
return hit[i].collider.gameObject;
}
}
return null;
}
다음으로 한 일은 적이 보이자 마자 싸우는 상황을 바꾸기위해 싸우는 상황을 3가지로 구분하고 싸워야할때만 싸우게 개선했다.

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
이제 유닛을 각 자리에 배치하고 싸움을 붙일 수 있게 되었다.
그리고 플레이어에게 아이템을 지급하고 얻은 아이템을 사용할 수 있도록 만들었다.
임시로 만든 아이템으로는
1. 유닛을 필드에 배치하는 아이템
2. 유닛의 스텟을 올리는 아이템
두종류로 만들었다.
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
아래 버튼을 클릭하고 필드를 누르면 유닛을 배치하면 유닛이 배치되고 스텟을 주는 아이템을 사용하면 유닛의 스텟이 오르는 것을 볼 수 있다.
다음은 싸움이 끝난 이후로의 결과창이나 상점, 이벤트 등을 만들어 볼 생각이다.
'개인 프로젝트' 카테고리의 다른 글
| Edge Detection 쉐이더 응용 (0) | 2024.06.01 |
|---|---|
| [개인 프로젝트] AutoBattle (0) | 2024.02.08 |
| 게임 제작일기 1 (1) | 2023.09.24 |
| [개인 프로젝트] Command - BOT (0) | 2023.03.13 |
| [개인 프로젝트] Blind Game (0) | 2023.03.13 |