상상 너머 그 무언가...

unity script에서 특정 컴포넌트 자동으로 추가 요청 (RequireComponent) 본문

개발관련(Development)/유니티3D(Unity3D)

unity script에서 특정 컴포넌트 자동으로 추가 요청 (RequireComponent)

Clack 2011. 4. 25. 16:31


javaScript에서는
@script RequireComponent(컴포넌트이름)

C# 에서는
[RequireComponent (typeof(컴포넌트이름))]


java의 경우 컴포넌트 이름만 넣어주면 알아서 붙여주지만
C#에서는 typeof() 메소드를 이용해서 리턴된 타입값을 가지고 해당 컴포넌트를 추가로 붙여준다.


테스트 삼아 Cube 게임 오브젝트에 자동으로 rigidBody를 붙여주도록 하는 'requireComponent' 스크립트를 적용시켜보았다.


결과는 아래 이미지에서 처럼 따로 rigidBody를 추가하지 않았는데도 스크립트에서 요청한 문장이 실행되어
자동으로 rigidBody 컴포넌트가 추가되어 있는걸 확인 할 수 있다.


requireComponent.cs 파일은 아래와 같이 [RequireComponent(typeof(Rigidbody))] 문장만 추가했다.
using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Rigidbody))]

public class requireComponent : MonoBehaviour {

// Use this for initialization
 void Start () {
 
 }
 
 // Update is called once per frame
 void Update () {
 
 }
}

위와 같이 사용하면 스크립트를 실행하는데 꼭 필요한 컴포넌트가 없는상태로 실행되는 오류를 사전에 막을 수 있도록 응용할 수 있다.