首页 > 解决方案 > 当通过蓝图调用时,虚幻引擎 4 光线追踪似乎不会忽略演员

问题描述

所以我一直在用虚幻引擎 4 制作游戏,并且一直在尝试结合使用 C++ 和蓝图。它进行得相当顺利,但我正在进行一些重构,并决定将我的 gun 类中的一个函数移到蓝图中。如下所示的函数采用了对传递给 ShootRay 函数的播放器的引用,以便它知道使用光线投射忽略哪个 Actor。

在此处输入图像描述

在此处输入图像描述

出于某种原因,当我尝试将 FireGun 函数转换为如下所示的蓝图时,尽管我仍然将玩家作为要忽略的 Actor 传递给玩家,但光线仍会击中玩家。

在此处输入图像描述

我不明白为什么这会在 C++ 中工作,但不能在蓝图中工作,但我猜这与从 C++ 调用蓝图函数有关,然后调用其他 C++ 函数导致一些奇怪的事情发生。我真的很想在蓝图中包含此代码,以便以后轻松扩展。有谁知道发生了什么?

注意:我知道在蓝图的图像中它说自定义事件,但这只是因为我在将其恢复为 C++ 并删除 BlueprintImplementable 标记后截取了屏幕截图。

标签: c++unreal-engine4unreal-blueprint

解决方案


(无法评论你的答案,所以会这样写)

是的,这是一个巨大的数字(我猜只删除 1 个零就足够了)。也许在 C++ 中它不会溢出,因为命中发生在它达到最大 32 位值之前?如果由于溢出而在空中射击(当您仅在 C++ 中完成时),线跟踪是否会结束?这让我很好奇,只是为了好玩而测试一下!

我认为,因为蓝图的操作有点不同,通过脚本,它会在操作开始之前检查你的浮点值,但我可能完全错了。编程还是很新的。

很高兴你发现了你的问题!祝你好运!


推荐阅读