스터디-/유니티 / / 2023. 5. 22. 16:48

좀비서바이벌 게임 ( UI 체력바 만들기 ) - 5

다형성 에 대해 알고 지나가자. 다형성은 문자 그대로 해석하면 "여러 형태" 입니다.

  C# 에서 다형성이라고 하면 상속을 떠올릴 수 있다.  상속이란 부모 클래스 기반으로

자식 클래스를 만드는 방법이며  자식 클래스는 부모 클래스의 필드와 메서드를 가지고 있으며 어떠한 자식 클래스든 부모 클래스 타입으로 취급하고 사용 할 수 있다.  이번 장에서는 상속이 많이 사용되고  다형서을 적용하기위한 오버라이드를 활용하여 같은 이름의 메서드를 실행해도 실체 저리는 각자 다르게 만들겁니다.

 

 

 

앞으로 생명체로 동작할 모든 클래스가 상속할 LivingEntity 클래스 입니다. 모든 생명체들은 공통적으로 체력과 회복 죽음같이 공통 기능이 있기 때문에 그것들을 관리 할 스크립트 입니다.

 

 

 

플레이어의  체력을 구현하기 위해 캐릭터 바닥에 UI 슬라이더를 추가할것입니다.

슬라이더의 배경이미지를 가져오고 크기와 위치를 캐릭터 바닥으로 설정해줍니다.

체력을 포현하기위해 Value 값을 0 ~ 100 으로 설정했습니다.

 

 

 

 

이미지 채우기 옵션에대한 차이점인데.  이미지 타입을 채움으로 해야하는 이유를 녹화해봤습니다.

 

 

 

LivingEntity를 상속하는 PlayerHelath 스크립트 입니다.

 

 

 

OnEnable 메서드에서는 체력슬라이더를 활성화하는 메서드 입니다.

게임오브젝트를 활성화하고 슬라이더의 체력값과 현재 체력값을 설정해줍니다.

 

RestoreHealth 메서드는 회복된 체력을 슬라이더에 반영해주는 처리를 추가해주는 메서드 입니다.

부모 클래스인 LivingEntity 에 체력을 회복하는 메서드를 실행하면 나오는 값을 받아와

슬라이더의 값을 변경해 처리합니다.

 

OnDamage  메서드는 맞았을때 피격사운드와 데미지를 체크해 슬라이더를 갱신하는 메서드 입니다.

부모클래스의 ondamage를 실행해 데미지와 위치를 받아오고 슬라이더에 반영합니다.

 

 

 

 

Die 메서드는 사망 애니메이션과 효과음을 재생하고 다른 컴포넌트들을 비활성화 해주는 기능을 합니다.

체력슬라이더를 비활성화하고 사망음을 재생한후 애니메이터의 DIE 트리거를 발동시켜줍니다.

 

OnTriggerEnter 메서드는 충돌한 상대방 게임 오브젝트가 아이템인지 판단하고 아이템을 사용하는 처리를 구현했습니다. 충돌한 상대방으로부터 IItem 컴포넌트를 불러와 판단하고 아이템을 사용하며 소리도 재생해줍니다.

 

 

 

 

완성한 스크립트들을 체력 슬라이더 컴포넌트에 설정, 적용해줍니다.

 

 

 

완성된 후 체력 게이지입니다. 빨간색으로 생긴 원이 데미지를 입으면 그 수치 만큼 줄어듭니다. 

 

 

 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유