zoukankan      html  css  js  c++  java
  • 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为这个类。 

  • 相关阅读:
    一些点子的梳理
    网络安全解决方案
    流量劫持技术
    运营商DNS系统安全解决方案
    安卓工作室 设置每次启动 选择项目,不直接打开项目
    多臂机测试, AB测试
    vue 入门
    web开发 入门
    C# .NET 使用第三方类库DotNetZip解压/压缩Zip文件
    Linq 101 工具和源码
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/4483952.html
Copyright © 2011-2022 走看看