• (转载)虚幻引擎3--UnrealScript Actor迭代器


    ACTOR类的迭代器

      以下所有迭代器的前两个参数是一样的: BaseClass和Actor. 同样,BaseClass类用于过滤类,它仅通过返回结果判断那个类是否真正地继承了给定的类,比如上面示例中的pawn类。第二个参数Actor,它是一个传入的变量,用于存放从迭代器返回的当前项。和上面的示例一样,这是您如何在迭代过程中从当前项进行操作或获取数据的方式。

    AllActors ( class<actor> BaseClass, out actor Actor, optional name MatchTag )

      这个迭代器的目的是迭代继承给定类的所有actors。

    DynamicActors( class<actor> BaseClass, out actor Actor )

      这个迭代器用于搜索获得自关卡启动后所创建的actors。当查找关卡中动态地创建的角色时这是非常地有用的。

    ChildActors( class<actor> BaseClass, out actor Actor )

      这用于找到当前调用该迭代器的actor的所有子项actor。这意味着这个迭代器仅返回这个Actor所具有的actors,也就是其actor的Owner属性指向调用该迭代器的Actor。

    BasedActors( class<actor> BaseClass, out actor Actor )

      这个迭代器用于找出所有基于当前actor的actor,这意味着这些actor的Base属性指向调用这个迭代器的Actor。

    TouchingActors( class<actor> BaseClass, out actor Actor )

      个迭代器便可以获取正在接触当前actor的所有actors。当一个actor接触另一个actor时,该actor会被添加到另一个actor的Touching数组中。这个迭代器循环那个数组,并返回包含在那个数组中的每个actor。

    TraceActors( class<actor> BaseClass, out actor Actor, out vector HitLoc, out vector HitNorm, vector Extent)

      当您想跟踪一个向量并找出被那个向量接触的所有actors时可以使用这个迭代器。

    OverlappingActors( class<actor> BaseClass, out actor Actor, float Radius, optional vector Loc, optional bool bIgnoreHidden)

      如果您想找到位于特定球体半径内的所有actors,那么可以使用这个迭代器。它将返回位于特定位置处的指定半径内的所有actors

    VisibleActors( class<actor> BaseClass, out actor Actor, optional float Radius, optional vector Loc )

      这个VisibleActors迭代器提供了迭代当前在某特定位置可见的所有actors的一种方法。

    VisibleCollidingActors ( class<actor> BaseClass, out actor Actor, float Radius, optional vector Loc, optional bool bIgnoreHidden)

      提供了获得给定半径内的所有actors的一种快捷方法。

    CollidingActors ( class<actor> BaseClass, out actor Actor, float Radius, optional vector Loc, option al bool bIgnoreHidden)

      CollidingActors迭代器函数和VisibleCollidingActors()迭代器类似,但是它迭代的是所有碰撞的actor,无论该actor是否可见。

           

    WORLDINFO 类的迭代器

    AllNavigationPoints(class<NavigationPoint> BaseClass, out NavigationPoint N);

      这个函数允许您迭代NavigationPointList(导航节点列表)中的所有NavigationPoints(导航节点)。当创建新的AI导航行为时,这个功能是非常有用的。 

    RadiusNavigationPoints(class<NavigationPoint> BaseClass, out NavigationPoint N, vector Point, float Radius)

      这个迭代器和导航节点迭代器类似,但是它允许您指定导航节点的所在半径。

    AllControllers(class<Controller> BaseClass, out Controller C)

      这个迭代器允许您迭代当前关卡中的所有Controller(控制器)。

    AllPawns(class<Pawn> BaseClass, out Pawn P, optional vector TestLocation, optional float TestRadius)

      这个迭代器允许您迭代当前关卡中的所有Pawns。

    SKELETALMESHCOMPONENT类的迭代器

    AttachedComponents(class<ActorComponent> BaseClass, out ActorComponent OutComponent);

      这个迭代器迭代所有附加到SkeletalMeshComponent上的组件。

    AllAnimNodes(class<AnimNode> BaseClass, out AnimNode Node);

      这个迭代器函数将会循环和SkeletalMeshComponent(骨架网格物体组件)相关的AnimTree中包含的所有AnimNodes(动画节点)。

    迭代动态数组

          UnrealScript现在提供了支持迭代动态数组的功能。有两种基本的方法来完成这个处理:

    foreach ArrayVariable(out ArrayItem)

    foreach ArrayVariable(out ArrayItem, optional out ItemIndex)

      这两种方法都可以迭代给定的数组,但是第二种方法将会使得ItemIndex变量渐增。

    foreach AllActors(class'MasteringUnrealScript.PelletNode',CurrNode)
        {
            foreach CurrNode.VisibleActors(class'MasteringUnrealScript.PelletNode',CurrVisNode)
            ...
        }

    原文地址:http://www.cnblogs.com/flycodes/articles/Unreal-Script-Actor-Iterator.html

  • 相关阅读:
    mysql笔记--基础知识
    安全杂乱笔记整理1---常用服务端口总结
    ent orm笔记4---Code Generation
    ent orm笔记3---schema使用(下)
    ent orm笔记2---schema使用(上)
    ent orm笔记1---快速尝鲜
    Linux 更新yum源
    Lua 获取毫秒精度时间
    Linux docker镜像制作
    Linux 中文字符集安装
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/6163648.html
Copyright © 2020-2023  润新知