Добавлен Лекс,
опубликован
Программирование в UDK.
Содержание:
Использование Актор-компонентов
ActorComponent и PrimitiveComponent
ActorComponent это класс объекта, который может быть установлен в мире.
PrimitiveComponent это тот ActorComponent, который отвечает за рендеринг или столкновение объектов.
PrimitiveComponent это тот ActorComponent, который отвечает за рендеринг или столкновение объектов.
Добавление компонентов
Пример:
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
Шаблоны компонентов
Шаблоны используются для объявления по умолчанию компонентов актор-класса. Шаблон это именованный объект, который содержит стандартные параметры для компонента стандартной ссылки свойства класса (Вот такое будет краткое определение).
Шаблоны наследуются подклассами класса, в котором они были объявлены. В каждый таком подклассе можно изменить набор индивидуальных свойств, унаследованных от шаблона.
Шаблоны наследуются подклассами класса, в котором они были объявлены. В каждый таком подклассе можно изменить набор индивидуальных свойств, унаследованных от шаблона.
Создание шаблона
Шаблон компонента, объявленный по умолчанию, будут выглядеть так:
Begin Object Class=SpriteComponent Name=Sprite
Sprite=Texture2D'EngineResources.S_Actor'
HiddenGame=True
AlwaysLoadOnClient=False
AlwaysLoadOnServer=False
End Object
Естественно это с учетом свойств класса
Установка и подключение шаблона
Пример:
Begin Object Class=SpriteComponent Name=Sprite
// Здесь присваиваются значения
End Object
Components.Add(Sprite)
Изменение свойств шаблона, унаследованных от старшего класса
Как я уже говорил, шаблон наследуется подклассом класса шаблона. Этот пример наследует щаблон актора Sprite и изменяет только спрайт:
Begin Object Name=Sprite
Sprite=Texture2D'EngineResources.S_SkyLight'
End Object
Динамически созданные компоненты
Для динамического создания компонента используется новый оператор UnrealScript - AttachComponent.
Работают с ним так.
Работают с ним так.
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 имеет строку collision enabled, BlockActors определяет столкновения примитивов и будет блокировать других участников. |
Boolean | CastShadow | Истинно, если PrimitiveComponent имеет тень, иначе – ложно |
Boolean | CollideActors | Если один из акторов bCollideActors или CollideActors является ложным, примитив не будет просчитывать столкновения. |
Boolean | HiddenEditor | Ложно, если PrimitiveComponent должен быть вынесен в редактор, иначе - истинно. |
Boolean | HiddenGame | Ложно, если PrimitiveComponent должен быть вынесен в игре, иначе истинно |
Встроенные типы компонентов
- PrimitiveComponent
- ArrowComponent
- CameraConeComponent
- CylinderComponent
- DrawFrustumComponent
- MeshComponent
- StaticMeshComponent
- SkeletalMeshComponent
- ParticleSystemComponent
- SpriteComponent
- LightComponent
- DirectionalLightComponent
- PointLightComponent
- SpotLightComponent
- SkyLightComponent
- AudioComponent
- HeightFogComponent
- SceneCaptureComponent
- SceneCapture2DComponent
- SceneCaptureCubeMapComponent
- SceneCaptureParaboloidComponent
- SceneCaptureReflectComponent
Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
хотя, если активно заполнять базу, то, возможно люди сами потянутся.