본문 바로가기

기타/패스트캠퍼스 Unity

유니티 입문 패스트캠퍼스 챌린지 21일차

HP 감소 처리하기

HP 감소 처리 작업하기 (1)

- Actor 클래스 추가

- 플레이어와 적이 공통으로 상속할 클래스

- HP에 관한 변수들

- 총알 피해량 (Damage)에 관한 변수

 

public class Actor : MonoBehaviour
{
    [SerializeField]
    protected int MaxHP = 100;

    [SerializeField]
    protected int CurrentHP;

    [SerializeField]
    protected int Damage = 1;

    // Start is called before the first frame update
    void Start()
    {
        Initialize();
    }

    protected virtual void Initialize()
    {
        CurrentHP = MaxHP;
    }

    // Update is called once per frame
    void Update()
    {
        UpdateActor();
    }

    protected virtual void UpdateActor()
    {

    }
}

Actor는 플레이어와 적 모두가 상속받아서 사용하기위한 클래스이다. UpdateActor와 같은 부분의 처리를 일원화 하기 위해 상속을 사용하고있다.

 

 Bullet, EnemyBullet Prefab을 열어서 IsTrigger를 체크하고 관련 코드를 작업한다. 비행기와 총알이 닿았을때를 인식하기 위해 하는 작업이다.

 

Actor class는 MaxHP, CurrentHP, Damage와 같은 값을 세팅한다. 최대 체력, 현재 체력, 데미지의 정보이다.

UpdateActor() 메서드는 미리 정의해두고 Update()에서 호출하고있는데 추후 Player와 Enemy에서 상속받아서 사용 할 예정이다.

 

HP 감소 처리 작업하기 (2)

- 총알에 피해량 변수를 추가하고 Fire()를 통해 전달

- 플레이어와 적에 피격시 메소드를 추가하고 피해량을 전달

- 충돌에 관한 피해량과 메소드 처리 코드 추가

- 플레이어와 적 프리팹에서 피해량과 충돌 피해량을 조절하며 테스트

 

Fire메서드에 인자중에 damge를 추가하여 Bullet의 damage로 사용한다. Actor가 Bullet과 닿았을때 Damge만큼 HP를 깍게되고 HP가 0이하가되면 Actor를 제거하게된다.

Player의 데미지는 100정도로 두고 Enemy의 데미지는 35정도로 주고 테스트를 해본다. HP가 100이므로 적은 한번에 죽고 플레이어는 3번정도의 피격을 맞아야 죽게된다. 난이도 조절은 여러번 하면서 적절하게 조절이 필요하다.

 

유니티 인스펙터창을 통해 데미지를 조절

https://fastcampus.co.kr/dev_online_game

 

C#과 유니티로 배우는 게임 개발 올인원 패키지 Online. | 패스트캠퍼스

현직 게임업계 게임 개발자 직강 C# 프로그래밍부터 게임 물리와 수학까지 모두 정복!

fastcampus.co.kr

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.