转自: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概念的更多相关文章

  1. vue-learning:25 - component - 概念-定义-注册-使用-命名

    概念 Vue遵循Web Component规范,提供了自己的组件系统.组件是一段独立的代码,代表页面中某个功能块,拥有自己的数据.JS.样式,以及标签.组件的独立性是指形成自己独立的作用域,不会对其它 ...

  2. Redux 核心概念

    http://gaearon.github.io/redux/index.html ,文档在 http://rackt.github.io/redux/index.html .本文不是官方文档的翻译. ...

  3. 设计模式--装饰模式Decorate(结构型)

    一.装饰模式 动态地给一个对象添加额外的职责.就增加功能来说,装饰模式相比生成子类更为灵活.有时我们希望给某个对象而不是整个类添加一些功能. 二.UML图 1.Component(概念中提到的对象接口 ...

  4. 移动web开发框架

    纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族 ...

  5. 常用移动web开发框架研究分析

    纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族 ...

  6. 移动web app开发框架

    文章地址:http://www.cnblogs.com/soulaz/p/5586787.html jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mo ...

  7. 移动web开发框架研究

    纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架.jQuery Mobile出自于jQuery家族 ...

  8. 介绍几个移动web app开发框架

    jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mobile应用用户界面.jQuery Mobile最新版本是1.4.0,默认主题采用扁平化设计风格.j ...

  9. 移动web开发研究

    1.jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mobile应用用户界面.jQuery Mobile最新版本是1.4.0,默认主题采用扁平化设计风格 ...

随机推荐

  1. 字符串转化成十六进制输出StrToHex(Delphi版、C#版)

    //注意:Delphi2010以下版本默认的字符编码是ANSI,VS2010的默认编码是UTF-8,delphi版字符串事先须经过AnsiToUtf8()转码才能跟C#版得到的十六进制字符串显示结果一 ...

  2. sublime3 支持 jsx 语法

    添加几个插件即可在js中快速写html babel 可以识别React,并高亮显示ES6 command+shift+p -> install package -> babel 使用 在打 ...

  3. The Gray World Assumption

    Color Constancy 色彩恒常性(2)The Gray World Assumption act=qbbkrzydb_20150408_01" style="line-h ...

  4. 跟着实例学习设计模式(6)-生成器模式builder(创建型)

    生成器模式是创建型设计模式. 设计意图:将一个复杂的类表示与其构造相分离,使得同样的构建过程可以得出不同的表示. 实例类图: IVehicleBuilder:抽象建造者.为创建一个Vehicle对象并 ...

  5. npm 全局配置放在c盘/用户/当前用户/目录下

    prefix=D:\Users\Ed\AppData\Roaming\nodejs\npm-globalcache=D:\Users\Ed\AppData\Roaming\npm-cacheregis ...

  6. Angular入门(四) Router 替换当前页面

    1.在 xx.html 中直接 写标签       <a [routerLink]="['/home']">home</a>   2.在 xx.html 中 ...

  7. 【题解】P2048 [NOI2010]超级钢琴

    [题解][P2048 NOI2010]超级钢琴 一道非常套路的题目.是堆的套路题. 考虑前缀和,我们要是确定了左端点,就只需要在右端区间查询最大的那个加进来就好了.\(sum_j-sum_{i-1}​ ...

  8. JavaScript for循环实现表格隔行变色

    本代码主要演示的是for循环, <!doctype html> <html lang="en"> <head> <meta charset ...

  9. 流畅的python学习笔记第八章:深拷贝,浅拷贝,可变参数

    首先来看赋值,浅拷贝,深拷贝. 一赋值: a=['word',2,3] b=a print id(a),id(b) print [id(x) for x in a] print [id(x) for ...

  10. Linux就该这么学--Shell脚本基本应用

    1.接收用户的参数: Shell脚本为了能够让用户更灵活的完成工作需求,可以在执行命令时传递参数:(命令名 参数1 参数2...) Shell预定义变量: $0 当前执行Shell脚本的程序名 $1- ...