[TIL] 유니티(Unity) 입문 2

백성은·2025년 4월 30일

TIL

목록 보기
23/34

✅ 들어가기 앞서

Unity로 UI 시스템을 짜다보면 virtual이랑 abstract를 동시에 사용하는 경우가 있다.
실제 Unity 코드에서 상속을 활용해 UI를 구성할 때 이 두 가지가 어떤 역할을 하고 왜 사용하는지 한번 정리해보자.

✅ 실제 Unity 코드 예시

부모 클래스 예시

	public abstract class BaseUI : MonoBehaviour
	{
    	protected UIManager uiManager;

    	public virtual void Init(UIManager uiManager)
    	{
        	this.uiManager = uiManager;
    	}
    
    	protected abstract UIState GetUIState(); 
    
    	public void SetActive(UIState state)
    	{
        	gameObject.SetActive(GetUIState() == state);
    	}
	}
  • virtual 은 기본 구현이 없고, 반드시 자식 클래스가 override해야 함.
    -abstract 는 기본 구현이 존재하며, 필요한 경우에만 자식에서 override 가능함.

자식 클래스 예시

	public class HomeUI : BaseUI
	{
    	protected override UIState GetUIState()
    	{
        	return UIState.Home;
    	}

    	public override void Init(UIManager uiManager)
    	{
        	base.Init(uiManager);
    	}
	}
  • virtual 메서드는 기본 기능을 유지한 채 커스터마이징이 가능하다.
  • abstract 메서드는 자식 클래스에서 반드시 구현해야 한다.

실제 게임 구조에서의 이점

  • UI를 한 곳에서 관리 가능
  • UI 상태 값만 바꾸면 해당 UI만 SetActive(true) 되는 구조여서 관리 효율이 좋음
  • 유지보수 쉬움, 새 UI도 쉽게 추가 가능

✅ 마무리

Unity에서 상속을 잘쓰면 확장성과, 유지보수성이 뛰어난 구조가 될 거 같다.

profile
게임 개발일지

0개의 댓글