728x90

애트리뷰트는 클래스에 메타데이터를 추가할수 있도록 제공한다.

주석과는 달리 클래스부터 시작해서 메소드구조체생성자프로퍼티필드이벤트인터페이스 등 여러가지 요소에 애트리뷰트를 사용할 수 있다.

 

우리가 필요에 의해서 이 애트리뷰트를 사용해 코드 앞에다 설명을 덧붙일 수도 있다.

애트리뷰트의 기본 형식은 다음과 같다:

1 [attribute(positional_parameter, name_parameter = value, ...)]

여기서 positional_parameter는 위치지정 파라미터라고 해서 반드시 적어야하는 부분으로, " "를 사용하여 작성한다그리고 name_parameter는 명명 파라미터로선택적인 정보이며 = 를 사용해서 값을 기입한다.

이 애트리뷰트는 크게 두가지로 나뉘는데사용자가 정의하는 커스텀 애트리뷰트와 내장되어 있는 공통 애트리뷰트로 나뉜다공통 애트리뷰트의 경우는 추가된 정보가 컴파일 방식에 영향을 줄 수 있는데반대로 커스텀 애트리뷰트는 영향을 주지 못한다.

 

대표적인 공통 애트리뷰트로는

Obsolete, Conditional, DllImport이 있다.


1. Obsolete

함수위에 [Obsolete(“출력하고싶은내용”] 을 걸면,

해당 함수 실행시 경고창이 콘솔에 출력된다.


2. Conditional

함수위에 [Conditional(“조건”] 을 걸고,

코드상에 #define 조건을 선언하면해당 함수가 실행되고해당 정의를 빼버리면 실행되지 않는다.


3.  DllImport

함수위에 [DllImport(“Example.dll”)] 을 걸고 extern 키워드를 이용하여 외부 dll에 정의 되어있는 함수를 사용할수 있다.

Public static extern int MessageBox()

 

이 외에도 많은 종류의 애트리뷰트를 제공한다.

 

유니티에서의 제공하는 커스텀 애트리뷰트로는 다음과 같은 것이 있다:


1) AddComponentMenu

기본적으로 스크립트는 유니티의 Component->Scripts 메뉴에 자동추가된다자동추가말고 아무데나 맘대로 넣고 싶으면 AddComponentMenu를 사용한다


2)  ContextMenu

스크립트를 우클릭시 뜨는 context menu에 커맨드를 추가할 수 있다


3) ExecuteInEditMode 기본적으로 play mode일 때만 스크립트가 실행되나 attribute를 사용하면edit mode일 때도 스크립트가 실행되게 한다.

 

4) HideInInspector

inspector에서 안보이게 한다.

 

5) NonSerialized

앞서 HideInInspector는 값을 유지하지만이건 그냥 리셋하여 디폴트값 으로 바꾼다


6) RPC

원격 컴퓨터의 해당 함수를 호출하는 것을 가능케 하는 애트리뷰트다. Remote Procedure Calls라고도 부르며,  유니티 5.1부터는 사용하지 않는 애트리뷰트이다.

 

7) RequireComponent 

함께 필요한 다른 컴포넌트가 자동으로 추가된다.

 

8) Serializable

직렬화 하여 유니티에서 해당 클래스의 내용물이 Inspector에서 보일 수 있도록 한다.


9) SerializeField

private필드를 강제로 serialize한다그러므로 inspector에서도 편집이 가능해진다.




출처 : https://blog.naver.com/captainj/221102947400


728x90

'Basic Programming > C#' 카테고리의 다른 글

C# - 작업 스케줄러에 등록하기  (0) 2021.12.10
C# - Steam Game 실행하기  (0) 2020.07.21
C# - Dispose  (0) 2018.10.12
C# - WeakReference  (0) 2018.10.11
C# - 공부하기 좋은 사이트  (0) 2018.09.05

+ Recent posts