본문 바로가기
유니티/3D RPG

21 스킬 시스템

by 노오오오오옹 2020. 6. 8.

 기능

※ 참고 사항

1. 엑셀로 정리된 데이터는 SkillData로 임시 보관한다.

1-1 SkillData는 인터페이스(IDataManager)를 기반으로 되어있다.

 

2. 스킬 활용의 경우 PlayerSkill에서 처리한다.

2-1 보유한 스킬, 보유한 퀵스킬, 버프 및 디버프 효과 적용, 스킬 데미지 범위 적용 등등...

2-2 보유 스킬이나 배워야할 스킬이 변화할 경우 UI를 갱신(delegeate 이용)한다

 

3. UI에서는 스킬의 아이콘부분만 On/Off한다. UI는 SkillUI, HealthBarUI(버프), MovementUI(퀵스킬)이 연관된다.

 

 코드

더보기

PlayerSkill의 보유한 스킬에 관한 함수들이다. 

- AddSkill()에서 조건문은 리스트에 무기 강화1, 무기 강화2, 무기 강화3를 동시에 넣지 않기 위해서다.

PlayerSkill의 배울 수 있는 스킬 목록을 점검하는 함수다.

- SID : 무기강화1(7), 무기강화2(7) 와 같이 같은 스킬이지만 레벨이 다른 경우에 동일한 SID를 가진다. 그렇기 때문에 SID가 다르면 배워야할 목록에 넣어야한다.

PlayerSkill의 스킬 영역 적용 부분

- Skill의 범위의 경우 사각형과 원형태가 있다.

- 데미지 적용은 Box나 Sphere의 범위안에 있는 몬스터들에게 데미지를 가하는 형식으로 작성했다.

SkillUI의 스킬 탭(배울 수 있는 스킬 화면/보유 스킬 화면) 버튼
SkillUI의 SkillSlot의 Skill들을 지정해준다.

- 위 탭(배움 목록/보유 목록) 버튼에 따라 배울 스킬들을 조건(전투/지속/기타)에 맞게 분류한다음 Slots에 적용한다.

SkillUI의 퀵 스킬 등록/해제/스왑 부분

- 등록 : 선택된 스킬이 있으며, 퀵 스킬 슬롯에 클릭한 경우

- 해제 : 동일한 슬롯을 2번이상 누른 경우

- 스왑 : 스왑 버튼을 눌렀으며, 2곳의 슬롯을 누른 경우

HealthBarUI의 버프/디버프 스킬 아이콘 표시 부분

- 버프/디버프 스킬이 들어온다면, 화면 좌상단 경험치 바 아래에 아이콘을 표시한다.

- SkillIconSlots[1]의 시간이 끝나면, 1번 이후부터 시프트 레프트를 해줘서 빈 공간을 제거한다.

 

 구현 영상

스킬 사용시 쿨타임(초록색)이 돈다. 버프/디버프는 좌상단 경험치바 아래에 표시되며, 시간이 종료되면 시프트 레프트를 한다.
스킬 UI는 배움 목록/보유 목록 탭으로 나뉜다. 선택한 탭에 따라 보여주는 스킬이 달라진다. 스킬을 선택한채로 슬롯을 누르면 등록, 같은 슬롯을 2번 이상 누르면 해제, 스왑 버튼을 누른채로 2공간을 누르면 스왑한다.

 

 리펙토링

 

 

'유니티 > 3D RPG' 카테고리의 다른 글

22 던전 시스템  (0) 2020.06.09
20 게임 최적화  (0) 2020.06.07
19 아이템 드래그/드랍  (0) 2020.06.06
18 비헤이비어 트리  (0) 2020.01.20
17 퀘스트 시스템  (0) 2020.01.16

댓글