【问题标题】:Why GetAllActorsOfClass returns empty?为什么 GetAllActorsOfClass 返回空?
【发布时间】:2017-01-17 06:46:50
【问题描述】:

我有一个派生自 Pawn 类的 PlayerControl.cpp

在那个类中,我有一个方法来获取地图中的所有演员

TSubclassOf<AEnemy> ClassToFind;
 TArray<AActor*> FoundEnemies;
 UGameplayStatics::GetAllActorsOfClass(GetWorld(), ClassToFind, FoundEnemies);

但是 FoundEnemies 数组总是空的,当我在 BP 中做同样的事情时它会起作用。

谁能告诉我为什么这在 C++ 中不起作用?或者如果我做错了,如何纠正?

【问题讨论】:

  • 我们在这里缺少很多代码来帮助您。第一:请尝试编写以小写开头的变量名。这主要是标准的,并且会使其他人更加困惑。第二:GetAllActorsOfClass 是否通过引用获取数组?
  • 严重否决投票? ,我不明白为什么要否决这个问题? ,哈哈
  • @Hayt ,我希望你注意到这个问题的标签,这个问题是关于使用 Unreal 编程的,任何曾经使用过 unreal 的人都会理解这段代码及其参考。 :)
  • 使用大写变量实际上是 UE4 中的标准,因此我认为不需要对帖子进行编辑。

标签: c++ unreal-engine4 unreal-development-kit unreal-blueprint


【解决方案1】:

最后,我找到了自己问题的答案

我应该给变量“ClassToFind”赋值 所以添加行classToFind = AEnemy::StaticClass(); 解决了这个问题

TSubclassOf<AEnemy> classToFind;
    classToFind = AEnemy::StaticClass();
    TArray<AActor*> foundEnemies;
    UGameplayStatics::GetAllActorsOfClass(GetWorld(), classToFind, foundEnemies);

【讨论】:

  • 你甚至可以跳过 classToFind 变量,直接执行:UGameplayStatics::GetAllActorsOfClass(GetWorld(), AEnemy::StaticClass(), foundEnemies);
猜你喜欢
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 2023-01-08
  • 2021-01-26
  • 2018-02-01
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多