微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

虚幻引擎中 FindComponentByClass 的模板函数

如何解决虚幻引擎中 FindComponentByClass 的模板函数

我正在尝试定义一个函数以将 UActorComponent 作为参数并使用 FindComponentByClass 根据其 classtype 进行初始化,因此我使用模板如下:

template<class T>
void FindActorComponent(T *aComponent){
    aComponent = Getowner()->FindComponentByClasss<T>();
    if(aComponent) //doSomething;
    else //doOther;
}

然而,我发现pointer(aComponent)传递的对象从函数中出来的是nullptr,虽然不是在里面初始化之后!

所以,我搜索了这种情况的解决方案,发现了这个: Pass pointer by reference,在尝试将参数从 (T *aComonent) 更改为 (T *&aComponent) 后,我发现它起作用了!

谁能给我解释一下这背后的概念,为什么它虽然是通过指针传递的,但它并没有影响传递的对象?

另外,如果我想根据传递的类类型执行一些函数(比如它是 UInputComponent 到 BindAction),我应该怎么做?我尝试使用 GetClass() 但我无法使用它!

提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。