본문 바로가기
개발더미

[개발더미][Unity] 추상 클래스

by 스테디코디스트 2023. 7. 24.
반응형
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>(); }
    }    
}