반응형
코드 작성
using UnityEngine;
// 추상 클래스 정의
public abstract class Character : MonoBehaviour
{
// 추상 프로퍼티 (파생 클래스에서 반드시 구현해야 함)
public abstract int Health { get; set; }
// 추상 메서드 (파생 클래스에서 반드시 구현해야 함)
public abstract void Move(Vector3 direction);
// 일반 메서드
public void Attack()
{
Debug.Log("Character attacks!");
}
// 가상 메서드 (선택적으로 재정의 가능)
public virtual void Die()
{
Debug.Log("Character dies.");
}
}
// 추상 클래스를 상속받는 구체적인 클래스 예시
public class Player : Character
{
private int health;
// 구현된 추상 프로퍼티
public override int Health
{
get { return health; }
set { health = value; }
}
// 구현된 추상 메서드
public override void Move(Vector3 direction)
{
transform.Translate(direction * Time.deltaTime);
}
// Die 메서드 재정의
public override void Die()
{
base.Die(); // 기본 동작 호출
Debug.Log("Player dies with custom death animation.");
}
}
// 추상 클래스를 상속받는 또 다른 구체적인 클래스 예시
public class Enemy : Character
{
private int health;
// 구현된 추상 프로퍼티
public override int Health
{
get { return health; }
set { health = value; }
}
// 구현된 추상 메서드
public override void Move(Vector3 direction)
{
transform.Translate(direction * Time.deltaTime * 0.5f); // 적의 이동 속도는 느리게
}
// Die 메서드 재정의
public override void Die()
{
base.Die(); // 기본 동작 호출
Debug.Log("Enemy dies and drops loot.");
}
}
반응형