안기훈_자료_보존용_계정 MYPI

안기훈_자료_보존용_계정
접속 : 2875   Lv. 49

Category

Profile

Counter

  • 오늘 : 320 명
  • 전체 : 243032 명
  • Mypi Ver. 0.3.1 β
[Unreal 게시판] UCLASS()의 정의와 역할 (0) 2014/04/21 AM 12:05
Question>

UCLASS()는 무엇인가?

-------------------------------------------------------------

Answer>

일단, 공식문서의 UCLASS()에 대한 설명은 아래와 같습니다.

https://docs.unrealengine.com/latest/KOR/Programming/Basics/ClassCreation/CodeOnly/index.html

써진 대로 언급하면, 'UCLASS() 매크로는 엔진이 클래스를 인식할 수 있도록 하며,
키워드 지정자와 함께 사용하여 엔진 내에서의 클래스 작동방식을 설정할 수도 있습니다.'라고 합니다.
그런데, 이거 말고는 다른 설명은 전~~~혀~~~ 없어요.
전~~~혀~~~ ^^;;;;;



그래서, 좀 더 추가로 설명하자면..^^;;;;
UCLASS()는 unreal engine 4에서 사용되는 class의 성격을 설정하기 위한 keyword입니다.
공식 문서 설명대로 macro고요. 설정 방식은 unreal engine 3의 방식과 유사합니다.



참고로 unreal engine 3에서는 아래의 link처럼 class의 성격을 설정했었습니다.

http://udn.epicgames.com/Three/Unreals!cripClassesKR.html

보시다 시피, unreal s!crip로 설정했고요.
unreal s!crip은 epic에서 만든 언어였기 때문에 link의 내용처럼
unreal engine과 유기적으로 연결되는 특별한 설정을 class에 자유롭게 할 수 있었습니다.^^



하지만,
unreal engine 4에서는 unreal s!crip을 사용할 수 없게되었고..^^;;;;;;
그러다 보니, unreal engine에 사용되는 class에 대한 특별한 설정을
C++로 할 수 있는 방법이 필요했습니다. 그래서, 추가된 게 UCLASS()이고요.
앞에서 쓴데로 UCLASSS()를 이용하면,
C++ class에 unreal engine을 위한 특별한 설정을 할 수 있습니다.^^



아래 예는 unreal engine 4에서
class APointLight, APawn, AController를 정의한 부분입니다.

UCLASS(HeaderGroup=Light, ClassGroup=(Lights, PointLights),MinimalAPI, meta=(ChildCanTick))
class APointLight : public ALight

UCLASS(abstract, HeaderGroup=Pawn, config=Game, dependson=AController, BlueprintType, Blueprintable, hidecategories=(Navigation, "AI|Navigation"))
class ENGINE_API APawn : public AActor, public INavAgentInterface

UCLASS(abstract, notplaceable, NotBlueprintable, HideCategories=(Collision,Rendering,"Utilities|Orientation"))
class ENGINE_API AController : public AActor, public INavAgentInterface

제가 위에 걸어 놓은 link와 번갈아 가면서 보시면,
각 class 성격을 대략적으로 파악할 수 있습니다.



물론, link는 unreal engine 3이고,
위의 예는 unreal engine 4라서리, 완전히 파악할 수는 없습니다.^^;;;
하지만, UCLASS()가 역할과 용도에 대한 개념 설명으로는 충분하다고 봅니다.^^







Tag:
안기훈, Kee Hoon Ahn, Unreal, UDK, iPhone, iPad, app, 앱, iOS

신고

 
X