본문 바로가기

카테고리 없음

Unity 공격을 하면 캐릭터가 피해를 입는 코드

728x90

게임에서 캐릭터가 적과 교전할 때 적이 공격을 하면 캐릭터가 피해를 입는 코드

public class Character : MonoBehaviour 
{
    public int maxHealth = 100;
    public int currentHealth;

    private void Start() 
    {
        currentHealth = maxHealth;
    }

    public void TakeDamage(int damage) 
    {
        currentHealth -= damage;

        if (currentHealth <= 0) 
        {
            Die();
        }
    }

    private void Die() 
    {
        // 캐릭터가 죽었을 때 실행되는 코드
    }
}

public class Enemy : MonoBehaviour 
{
    public int damage = 10;

    private void OnCollisionEnter(Collision collision) 
    {
        // 충돌한 오브젝트가 캐릭터일 경우
        if (collision.gameObject.CompareTag("Player")) 
        {
            Character character = collision.gameObject.GetComponent<Character>();

            if (character != null) 
            {
                character.TakeDamage(damage);
            }
        }
    }
}

 

코드 리뷰

Character 클래스입니다. 이 클래스는 캐릭터의 최대 체력과 현재 체력을 저장합니다. Start 메서드에서는 캐릭터의 현재 체력을 최대 체력으로 초기화합니다.

TakeDamage 메서드는 캐릭터가 피해를 입었을 때 호출됩니다. 이 메서드는 입력으로 받은 데미지 값을 현재 체력에서 빼주고, 현재 체력이 0 이하가 되면 Die 메서드를 호출하여 캐릭터를 죽인 후 처리할 코드를 작성할 수 있습니다.

Enemy 클래스는 OnCollisionEnter 이벤트를 사용하여 적과 캐릭터가 충돌했을 때 실행됩니다. 만약 충돌한 오브젝트가 "Player" 태그를 가진 게임 오브젝트라면, 해당 오브젝트의 Character 컴포넌트를 가져와 TakeDamage 메서드를 호출합니다.

이 코드를 활용하면 게임에서 캐릭터가 적과 교전할 때 적이 공격을 하면 캐릭터가 피해를 입고 체력이 감소하고, 캐릭터의 체력이 0 이하가 되면 처리할 코드를 작성ㅎ합니다

 

728x90