首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将类作为参数传递给UnrealScript中的函数?

如何将类作为参数传递给UnrealScript中的函数?
EN

Stack Overflow用户
提问于 2013-02-08 00:58:46
回答 1查看 839关注 0票数 0

我想做的是

代码语言:javascript
复制
result = TraceActors(class'QuadForcePawn', HitEnemy, hitLocation, HitNorm, weaponStart, m_oldWeaponStartLocation[iHand], vExtent);

但是我想用一个变量替换class'QuadForcePawn'部件。我还不知道该怎么做。

这样我就可以有一个调用TraceActors的函数,该函数接受一个参数,告诉它要查找哪种类型的Actors

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-08 04:16:22

从技术上讲,TraceActors实际上是一个iterator function,应该与foreach关键字一起使用,所以实际上不会将结果赋给变量。

要回答您的问题,您要使用的是class reference variable。示例函数可能如下所示(TraceActors实际上需要更多参数,但为简洁起见,我省略了这些参数):

代码语言:javascript
复制
function TraceFor (class<Actor> traceClass)
{
    local Actor A;

    foreach TraceActors(traceClass, A)
    {
        // do work here
    }
}

类引用变量是用class关键字声明的,您可以选择使用<>语法来限制可以分配给它的类。class<Actor>声明了一个类引用变量,该变量只能分配有Actor或Actor的子类。在上面的示例函数中,对TraceFor(class'Pawn')的调用可以正常工作,但对TraceFor(class'Object')的调用将无法编译。

如果您想返回TraceActors调用的结果,一种方法可能是构建一个结果数组并返回该结果:

代码语言:javascript
复制
// Returns an array of Actors of the passed in type.
function TraceFor (class<Actor> traceClass, out array<Actor> results)
{
    local Actor A;

    foreach TraceActors(traceClass, A)
    {
        results.AddItem(A);
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14756653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档