A-Dyu의 개발 일기장

[유니티]RequireComponent 어트리뷰트 본문

유니티/유니티 기능

[유니티]RequireComponent 어트리뷰트

ADyu 2024. 5. 22. 01:07

RequireComponent 어트리뷰트는 컴포넌트에 대한 종속성을 추가시킬떄 사용됩니다.

예를 들어, 제가 만드는 컴포넌트는 Rigidbody를 사용합니다.

하지만 이 컴포넌트를 추가한 게임오브젝트에 Rigidbody가 없으면 당연히 에러가 나겠죠.

using UnityEngine;

public class Test : MonoBehaviour
{
    Rigidbody rigid;
    private void Awake()
    {
        rigid = GetComponent<Rigidbody>();
    }
}

Rigidbody가 없어도 에러가 발생하지 않는다

그럴 때 "이 컴포넌트는 다른 컴포넌트가 꼭 필요하다!"라고 알려주는게 RequireComponent 어트리뷰트입니다.

RequireComponent 어트리뷰트를 클래스에 추가시키겠습니다

using UnityEditor;
using UnityEngine;

[RequireComponent(typeof(Rigidbody))]//RequireComponent 어트리뷰트 추가
public class Test : MonoBehaviour
{
    Rigidbody rigid;
    private void Awake()
    {
        rigid = GetComponent<Rigidbody>();
    }
}

그리고 다시 컴포넌트를 게임오브젝트에 추가하면....

자동으로 추가된 Rigidbody

짜잔! 자동으로 컴포넌트가 추가됩니다.

그 뿐만 아니라 실수로 컴포넌트를 삭제할려고 해도 경고가 뜨며 삭제가 되지 않습니다.

Rigidbody를 삭제할려고 하자 뜨는 경고창

이렇게 RequireComponent 어트리뷰트를 사용하면 컴포넌트에 다른 컴포넌트에 대한 종속성을 추가시킬 수 있습니다.