게임에서 캐릭터가 적과 교전할 때 적이 공격을 하면 캐릭터가 피해를 입는 코드
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 이하가 되면 처리할 코드를 작성ㅎ합니다