转自: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. 巧用Excel提高工作效率

    程序员如何巧用Excel提高工作效率 主要讲解下Excel中VLOOKUP函数的使用,相比于上一篇中的内容,个人觉得这个相对高级一些. 1.使用背景 为什么会使用到这个函数呢,背景是这样的,有两个系统 ...

  2. vsftpd 自动安装脚本

    #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'cpy' import os import re import sys impo ...

  3. webpack 样式分离之The root route must render a single element

    公司项目使用的是webpack1,使用extract-text-webpack-plugin 插件无法将css分离出来,检查原因,发现有如下代码 <Route path="/home& ...

  4. Svn服务器备份迁移小结

    注:svn备份千万不要采用打包压缩,然后解压文件的方式. 备份和还原之前先要关掉svn服务器. svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3) ...

  5. 目标跟踪之camshift---opencv中meanshift和camshift例子的应用

    在这一节中,主要讲目标跟踪的一个重要的算法Camshift,因为它是连续自使用的meanShift,所以这2个函数opencv中都有,且都很重要.为了让大家先达到一个感性认识.这节主要是看懂和运行op ...

  6. idea创建普通java项目以及maven创建项目过程(转)

    1. idea创建一个普通项目流程 http://blog.csdn.net/testcs_dn/article/details/52303941 2. idea创建maven项目流程 http:// ...

  7. 深入了解Cookie(1)------selenium2进行Cookie操作的前奏

    世界上最宽阔的是海洋,比海洋还宽阔的是天空,比天空还宽阔的是人的心量.做人的心量有多大.人生的成就就有多大. 不为一己之利去争.去斗.去夺,扫除报复之心和妒忌之念.自然"心底无私天地宽&qu ...

  8. while 循环中的break continue pass 的用法

    while break:跳出最近的循环 continue:跳到最近所在循环的开头处 pass:什么也不做,只是空占位语句,它本身与循环没什么关系,但属于简单的单个单词语句的范畴: pass 语句是无运 ...

  9. java基础语言 运算符

    /* ++,--运算符的使用: 单独使用: 放在操作数的前面和后面效果一样.(这种用法是我们比较常见的) 参与运算使用: 放在操作数的前面,先自增或者自减,然后再参与运算. 放在操作数的后面,先参与运 ...

  10. linux版本查看命令

    uname -a显示电脑以及操作系统相关信息 cat /proc/version显示正在运行的内核版本 cat /etc/issue或cat /etc/redhat-release  Linux查看版 ...