반응형
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 추상 클래스를 사용한 이유
// 1. 설계도 역할 -> 몬스터와 플레이어의 공통 특성을 파악(추상화)
// 2. 캡슐화 -> 변수를 드러나지 않게 함(데이터 보호)
// 3. 상속 -> 중복 코드 최소화
// 4. 다형성 -> 오버라이드 사용
public abstract class CommonProperties : MonoBehaviour
{
protected enum State
{
Idle, Move, Attack, Dead
}
[SerializeField] protected State myState;
protected abstract void ChangeState(State curState); // 상태 변경 함수
protected abstract void StateProcess(); // 상태별 처리 함수
protected abstract void OnAttack(); // 공격 처리 함수
protected Animator myAnim
{
get { return GetComponent<Animator>(); }
}
}