본문 바로가기

프로젝트/BossRush

[BossRush] 4,5,6일차 : 보스 & HP UI 추가

728x90
반응형

그동안 일정이 있어 바쁘게 보냈더니 포스팅이 엄청 밀렸다!

개발한지도 꽤 돼서 오늘 포스팅하고 내일부터 다시 개발 시작해야겠당


기획

현재 공격 전조 모션빼고 구현된 상태이다.

단순한 직선 공격은 위,아래까지 3군데 위치에서 랜덤으로 나오도록 변경할까 고민 중!


개발

플레이어가 보스의 공격을 맞아 HP가 깎임

 

사실 보스도 플레이어에게 공격받으면 HP가 깎이도록 구현해뒀다.

다만 움짤을 만드는걸 까먹었서요...

이제 슬슬 코드를 전체적으로 올리기 벅찰거 같아 주요 부분만 뽑아서 작성해야징

 

HP

public void TakeDamage(int damage)
{
    currentHP -= damage;
    currentHP = Mathf.Clamp(currentHP, 0, maxHP.Length);
    // Boss의 경우는
    // currentHP = Mathf.Clamp(currentHP, 0, maxHP);

    UpdateHPUI();
}

private void UpdateHPUI()
{
    if(maxHP != null)
    {
        maxHP[currentHP].gameObject.SetActive(false);
        // Boss의 경우는
        // hpSlider.value = (float)currentHP / maxHP;
    }
}

HP 코드는 PlayerController와 BossController 스크립트에 추가해주었다.

player는 3개의 목숨을 이미지 컴포넌트로 가지고 있어 SetActive로 표현했다.

boss는 슬라이더로 표현했기 때문에 수치를 계산하여 value로 넣어준다.

 

오브젝트 충돌

private void OnTriggerEnter2D(Collider2D collider)
{
	// Boos의 투사체의 경우 "Player" tag
    if (collider.gameObject.CompareTag("Boss") && !isTakeBoss)
    {
        collider.GetComponent<BossController>().TakeDamage(15);
        isTakeBoss = true;
        gameObject.SetActive(false);
    }
}

보스가 플레이어의 공격을 맞을 때나 플레이어가 보스의 투사체를 맞았을 때 충돌처리이다.

유니티 내장 함수인 OnTriggerEnter2D를 사용했다.

충돌한 오브젝트의 태그로 구분하도록 했다.

 

HP와 같은 UI 시스템이 들어가니까 조만간 설계 후 리팩토링이 필요할거 같다.

하지만 1차 목표는 '그럴듯한 1라운드 게임 만들기'라서 우선은 덕지덕지 코드로 완성 할 계획😎

728x90
반응형