유니티게임개발/기초공부

유니티(Unity)에서 partial 클래스 사용(클래스명과 파일명, MonoBehaviour)

디지털콘텐츠크리에이터 2024. 10. 1. 13:52

유니티(Unity)에서 partial 클래스 사용(클래스명과 파일명, MonoBehaviour)

일반적으로 C#에서 클래스 이름과 .cs 파일 이름이 동일하지않아도 문제 없이 컴파일되며 정상적으로 동작합니다.
유니티(Unity)에서는 클래스 이름과 파일 이름이 일치하지 않으면 오류가 발생할 수 있습니다. 특히 유니티의 컴포넌트 시스템을 사용하고 게임오브젝트에 추가하기위해(MonoBehaviour를 상속받는 스크립트) 파일 이름과 클래스 이름이 일치해야합니다.

// MyScript.cs
using UnityEngine;

public class MyScript : MonoBehaviour
{
    void Start()
    {
        Debug.Log("Hello, Unity!");
    }
}

Unity에서 partial 클래스 사용 방법

MonoBehaviour를 상속받는 클래스(partial 클래스)의 이름과 파일 이름이 동일해야합니다.
나머지 partial 클래스에 동일한 클래스 이름을 사용하고 서로 다른 파일 이름으로 설정합니다(MonoBehaviour 상속받지않음)


클래스 이름과 파일명이 일치, Unity에서 이 클래스를 컴포넌트로 사용(MonoBehaviour를 상속)
// Enemy.cs
using UnityEngine;

public partial class Enemy : MonoBehaviour
{
    void Start()
    {
        Debug.Log("Enemy Initialized");
        InitializeHealth();
    }

    void InitializeHealth()
    {
        Debug.Log("Health Initialized");
    }
}

클래스 이름과 파일명 불일치 가능(MonoBehaviour를 상속하지 않는 partial 클래스)
// Enemy_Attack.cs
public partial class Enemy
{
    public void Attack()
    {
        Debug.Log("Enemy is attacking!");
    }
}


// Enemy_Movement.cs
public partial class Enemy
{
    public void Move()
    {
        Debug.Log("Enemy is moving!");
    }
}