UDN
Search public documentation:
ActorComponentsKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
액터 컴포넌트
문서 변경내역: Andrew Scheidecker? 작성. Scott Sherman, Matt Oelfke 업데이트.
개요
액터 컴포넌트 사용하기
ActorComponent 대 PrimitiveComponent
ActorComponent 는 월드의 액터에 첨가할 수 있는 오브젝트입니다. PrimitiveComponent 는 렌더링 및 충돌이 가능한 ActorComponent 입니다.컴포넌트 추가하기
인스턴스된 Actor는 (서브클래스가 Components 배열에서 Sprite를 제거하지 않은 한) 이와 함께 인스턴스된 SpriteComponent를 갖습니다. Components 배열에서 참조된 컴포넌트는 Actor의 위치에 묶입니다. 예:class Actor extends Object; var const array<ActorComponent> Components; defaultproperties { Begin Object Class=SpriteComponent Name=Sprite Sprite=S_Actor HiddenGame=True End Object Components.Add(Sprite) }
컴포넌트 변경하기
예:class Trigger extends Actor; defaultproperties { Begin Object Name=Sprite Sprite=S_Trigger End Object }
컴포넌트 제거하기
예:class StaticMeshActor extends Actor; defaultproperties { Components.Remove(Sprite) … }Sprite 컴포넌트 프로토타입은 더 이상 StaticMeshActor 클래스의 기본 속성에서 참조되지 않기에, StaticMeshActors 와 함께 인스턴스되지 않습니다.
컴포넌트 템플릿
컴포넌트 템플릿은 Actor 클래스의 기본 속성을 선언하는 데 사용됩니다. 컴포넌트 템플릿은 클래스의 기본 속성에서 참조된 컴포넌트에 대한 기본 속성을 포함하는 명명된 오브젝트입니다. 클래스가 인스턴스되면 그 클래스가 참조하는 모든 컴포넌트 템플릿도 함께 인스턴스됩니다. 컴포넌트 템플릿은 선언된 클래스의 서브클래스에 상속됩니다. 각 서브클래스는 상속된 템플릿의 개별 속성을 덮어씁니다. 컴포넌트 템플릿의 인스턴스는 템플릿의 기본 속성에 상대적으로 직렬화됩니다. 이로써 레벨에 배치된 이후 템플릿 속성에 가해진 변경내용이 계속해서 액터 컴포넌트의 인스턴스에 반영됩니다.컴포넌트 템플릿 만들기
컴포넌트 템플릿은 클래스의 기본 속성에서 선언됩니다.Begin Object Class=SpriteComponent Name=Sprite Sprite=Texture2D'EngineResources.S_Actor' HiddenGame=True AlwaysLoadOnClient=False AlwaysLoadOnServer=False End Object
컴포넌트 템플릿 인스턴스 및 첨부
컴포넌트 템플릿은 클래스의 기본 속성에 의해 참조되지 않는 한 클래스와 함께 인스턴스되지 않으며, 액터 컴포넌트는 액터의 Components 배열에 있지 않은 한 액터에 첨부되지 않습니다. 기본 속성에서 컴포넌트 템플릿을 액터의 Components 배열에 추가하여 Actor 클래스로 액터 컴포넌트 템플릿을 인스턴스하고, 자동으로 인스턴스된 컴포넌트를 액터 인스턴스에 첨부시킬 수도 있습니다:Begin Object Class=SpriteComponent Name=Sprite // 여기에 Sprite 컴포넌트 속성에 값을 배정 End Object Components.Add(Sprite)
수퍼 클래스에서 상속받은 컴포넌트 템플릿의 속성 바꾸기
컴포넌트 템플릿은 그 템플릿이 초기에 선언된 클래스의 서브클래스에 상속됩니다. 서브클래스는 상속된 템플릿의 개별 속성을 덮어쓸 수 있습니다. 다음의 예에서는 Actor 로부터 Sprite 템플릿을 상속하여 스프라이트 텍스처의 속성만 변경합니다:Begin Object Name=Sprite Sprite=Texture2D'EngineResources.S_SkyLight' End Object
동적으로 생성된 컴포넌트
컴포넌트의 인스턴스를 동적으로 만들려면 언리얼스크립트의 new 연산자를 사용하고 액터의 AttachComponent 메써드를 호출하여 새 컴포넌트를 액터에 첨가합니다. new 연산자에 대한 파라미터는 그 안에 컴포넌트를 만드는 Outer 오브젝트입니다; 이는 컴포넌트가 첨부될 대상 액터여야 합니다. 그래야 컴포넌트의 Outer 참조가 컴포넌트가 첨부될 액터 앞에서 불필요하게 다른 액터의 가비지 컬렉션을 차단하지 않습니다.local StaticMeshComponent NewComponent; NewComponent = new(self) class'StaticMeshComponent'; // 여기서 스태틱 메시 컴포넌트 속성 설정 AttachComponent(NewComponent);앞서 첨부한 컴포넌트를 분리하여 비우려면, 액터의 DetachComponent 메써드를 사용하십시오. 컴포넌트에 대한 참조가 없게 되면 가비지 컬렉션됩니다.
공통 PrimitiveComponent 옵션
타입 | 이름 | 설명 |
boolean | AlwaysLoadOnClient | 만약 AlwaysLoadOnClient=False이고, 프리미티브의 HiddenGame=True 및 CollideActors=False이면, 해당 프리미티브는 게임 클라이언트에 로드되지 않습니다. |
boolean | AlwaysLoadOnServer | 만약 AlwaysLoadOnServer=False이고, 프리미티브의 CollideActors=False 이면, 해당 프리미티브는 게임 서버에 로드되지 않습니다. |
boolean | BlockActors | PrimitiveComponent에 충돌이 켜진 경우, BlockActors는 프리미티브의 충돌이 다른 액터들을 차단할지 여부를 결정합니다. |
boolean | CastShadow | PrimitiveComponent가 그림자를 True면 드리우고, False면 드리우지 않습니다. |
boolean | CollideActors | 액터의 bCollideActors 나 PrimitiveComponent 의 CollideActors 속성이 False 이면 그 프리미티브에 충돌이 없습니다. |
boolean | HiddenEditor | PrimitiveComponent 가 에디터에서 렌더링되어야 하는 경우에는 False, 그렇지 않으면 True 입니다. |
boolean | HiddenGam | PrimitiveComponent 가 게임에서 렌더링되어야 하는 경우에는 False, 그렇지 않으면 True입니다. |
액터 충돌과 PrimitiveComponents
충돌 테스트는 액터에 첨부된 충돌하는 PrimitiveComponent 모두에 대해 수행되지만, 액터가 움직일 때는 단일 PrimitiveComponent 에 대한 테스트만 행해집니다. 이 PrimitiveComponent 는 액터의 속성인 CollisionComponent 를 설정함으로써 선택되어 액터 이동 충돌 확인에 사용되는 컴포넌트를 참조합니다. 액터가 움직이면 CollisionComponent 에 의해 참조된 컴포넌트의 경계 박스를 취해서 모든 충돌하는 PrimitiveComponen t들을 정리합니다.내장 컴포넌트 타입
- PrimitiveComponent
- ArrowComponent
- CameraConeComponent
- CylinderComponent
- DrawFrustumComponent
- MeshComponent
- StaticMeshComponent
- SkeletalMeshComponent
- ParticleSystemComponent
- SpriteComponent
- LightComponent
- DirectionalLightComponent
- PointLightComponent
- SpotLightComponent
- SkyLightComponent
- AudioComponent
- HeightFogComponent
- SceneCaptureComponent
- SceneCapture2DComponent
- SceneCaptureCubeMapComponent
- SceneCaptureParaboloidComponent
- SceneCaptureReflectComponent