Component概念
转自:http://www.cnblogs.com/NEOCSL/archive/2012/05/06/2485227.html
1.总结
Component就是组建的意思,可以在DefaultProperties中加入类似,SpriteComponent,SkeletalMeshComponent,StaticMeshComponent,DynamicLightEnvironmentComponent丰富自己建立的类。
2.组建的一些属性
bHiddenGame=true
bHiddenEditor=true
bOwnerNoSee=true
3.组件示例

defaultproperties
{
begin object class=SpriteComponent name=Mysprite
Sprite=Texture2D'EditorResources.S_Keypoint'
HiddenGame=true
end object
Components.add(MySprite)
begin object class=SkeletalMeshComponent name=MyMesh
SkeletalMesh=SkeletalMesh
'CH_IronGuard_Male.Mesh.SK_CH_IronGuard_MaleA'
//见下面的光照
LightEnvironment=MyLight
end object
Components.add(MyMesh)
begin object class=DynamicLightEnvironmentComponent name=MyLight
bCastShadow=false
end object
Components.add(MyLight)
}

4.不想继承组建,可以删除之
如果在子类中不想要父类的一些组建可以删除之
Components.Remove(MySprite)
5.组建同样可以引发一些错误
如果父类中已经在组建中使用了一个name,则重新为相同类组建命名相同名字会发生错误:
例如这里给
begin object class="SpriteComponent" name=Sprite
就会发生错误,因为name=Sprite在前边的类中已经使用了,所以命名为Sprite比较合适。
6.实时的改变组建,例如可以改变玩家的外观
如果想要实时的改变组建,一个方法便是将组建写入到函数中。或是使用Kismet的toggle来调节。
①使用Use函数来改变手电筒,在Pawn中

var SpotLightComponent FlashLight;
exec funtion Use()
{
if(AntPawn(Pawn)!=none)
{
//这将会是一个很巧妙地Toggle方法
AntPawn(Pawn).FlashLight.SetEnabled(!AntPawn(Pawn).FlashLight.bEnabled);
}
}
defaultproperties
{
begin Object class=SpotLightComponent name=MySpotLight
bEnabled=true
Radius=1024
Brightness=1.900
end object
Components.add(MySpotLight)
FlashLight=MySpotLight
}

②kismet中使用Toggle来调整

var StaticMeshComponent MyStaticMeshComponent;
var Material GreenMat,RedMat;
simulated function OnToggle(SeqAct_Toggle Action)
{
if(Action.InputLinks[2].bHasImpulse)
{
if(MyStaticMeshComponent.GetMaterial(0)==GreenMat)
MyStaticMeshComponent.SetMaterial(0,RedMat);
else
MyStaticMeshComponent.SetMaterial(0,GreenMat);
}
defaultproperties
{
begin object class=StaticMeshComponent name=MyStaticMesh
StaticMesh=StaticMesh'UN_SimpleMeshes.TexPropCube_Dup'
Materials(0)=Material'EditorMaterials.WidgetMaterial_Y'
end object
Components.add(MyStaticMesh)
GreenMat=Material'EditorMaterials.WidgetMaterial_Y'
RedMat=Material'EditorMaterials.WidgetMaterial_X'
}

连接Toggle的Target为这个类。
Component概念的更多相关文章
- vue-learning:25 - component - 概念-定义-注册-使用-命名
概念 Vue遵循Web Component规范,提供了自己的组件系统.组件是一段独立的代码,代表页面中某个功能块,拥有自己的数据.JS.样式,以及标签.组件的独立性是指形成自己独立的作用域,不会对其它 ...
- Redux 核心概念
http://gaearon.github.io/redux/index.html ,文档在 http://rackt.github.io/redux/index.html .本文不是官方文档的翻译. ...
- 设计模式--装饰模式Decorate(结构型)
一.装饰模式 动态地给一个对象添加额外的职责.就增加功能来说,装饰模式相比生成子类更为灵活.有时我们希望给某个对象而不是整个类添加一些功能. 二.UML图 1.Component(概念中提到的对象接口 ...
- 移动web开发框架
纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族 ...
- 常用移动web开发框架研究分析
纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族 ...
- 移动web app开发框架
文章地址:http://www.cnblogs.com/soulaz/p/5586787.html jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mo ...
- 移动web开发框架研究
纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架.jQuery Mobile出自于jQuery家族 ...
- 介绍几个移动web app开发框架
jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mobile应用用户界面.jQuery Mobile最新版本是1.4.0,默认主题采用扁平化设计风格.j ...
- 移动web开发研究
1.jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mobile应用用户界面.jQuery Mobile最新版本是1.4.0,默认主题采用扁平化设计风格 ...
随机推荐
- 字符串转化成十六进制输出StrToHex(Delphi版、C#版)
//注意:Delphi2010以下版本默认的字符编码是ANSI,VS2010的默认编码是UTF-8,delphi版字符串事先须经过AnsiToUtf8()转码才能跟C#版得到的十六进制字符串显示结果一 ...
- sublime3 支持 jsx 语法
添加几个插件即可在js中快速写html babel 可以识别React,并高亮显示ES6 command+shift+p -> install package -> babel 使用 在打 ...
- The Gray World Assumption
Color Constancy 色彩恒常性(2)The Gray World Assumption act=qbbkrzydb_20150408_01" style="line-h ...
- 跟着实例学习设计模式(6)-生成器模式builder(创建型)
生成器模式是创建型设计模式. 设计意图:将一个复杂的类表示与其构造相分离,使得同样的构建过程可以得出不同的表示. 实例类图: IVehicleBuilder:抽象建造者.为创建一个Vehicle对象并 ...
- npm 全局配置放在c盘/用户/当前用户/目录下
prefix=D:\Users\Ed\AppData\Roaming\nodejs\npm-globalcache=D:\Users\Ed\AppData\Roaming\npm-cacheregis ...
- Angular入门(四) Router 替换当前页面
1.在 xx.html 中直接 写标签 <a [routerLink]="['/home']">home</a> 2.在 xx.html 中 ...
- 【题解】P2048 [NOI2010]超级钢琴
[题解][P2048 NOI2010]超级钢琴 一道非常套路的题目.是堆的套路题. 考虑前缀和,我们要是确定了左端点,就只需要在右端区间查询最大的那个加进来就好了.\(sum_j-sum_{i-1} ...
- JavaScript for循环实现表格隔行变色
本代码主要演示的是for循环, <!doctype html> <html lang="en"> <head> <meta charset ...
- 流畅的python学习笔记第八章:深拷贝,浅拷贝,可变参数
首先来看赋值,浅拷贝,深拷贝. 一赋值: a=['word',2,3] b=a print id(a),id(b) print [id(x) for x in a] print [id(x) for ...
- Linux就该这么学--Shell脚本基本应用
1.接收用户的参数: Shell脚本为了能够让用户更灵活的完成工作需求,可以在执行命令时传递参数:(命令名 参数1 参数2...) Shell预定义变量: $0 当前执行Shell脚本的程序名 $1- ...