개인 프로젝트

게임 제작일기 2

Hun die 2023. 9. 27. 15:18

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

먼저 유닛을 대량으로 싸움을 붙여봤는데 잘 싸우는 것 같다.

 

그리고 이제 유닛에게 스킬을 하나씩 넣어주기로 했다.

그리고 스킬을 넣기 전 어떤 상황에 어떤 상태를 만들지 정하기 위해 각 트리거를 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