标签: unreal-blueprint

为什么 GetAllActorsOfClass 返回空?

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

在那个班级中,我有一个方法可以获取 Map 中的所有 Actors

TSubclassOf<AEnemy> ClassToFind;
 TArray<AActor*> FoundEnemies;
 UGameplayStatics::GetAllActorsOfClass(GetWorld(), ClassToFind, FoundEnemies);
Run Code Online (Sandbox Code Playgroud)

但是 FoundEnemies 数组总是空的,当我在 BP 中做同样的事情时它可以工作。

有人能告诉我为什么这在 C++ 中不起作用吗?或者如果我做错了,如何做正确的?

c++ unreal-development-kit unreal-engine4 unreal-blueprint

8
推荐指数
1
解决办法
8253
查看次数

如何在 Unreal 蓝图中创建与 Unity LookAt 等效的内容?

在虚幻中,我想要

  1. 旋转角色,使前向向量指向目标的当前位置,
  2. 确保我的演员的向上向量与我的目标的向上向量相同

在Unity3D中,这非常简单。这是一行代码(源代码):

transform.LookAt(target, Vector3.up);
Run Code Online (Sandbox Code Playgroud)

在蓝图中,有一个名为“Find Look at Rotation”的节点。问题是没有向上矢量参数,因此当您接近目标时,可能会出现不需要的滚动旋转。

那么,如何在 Unreal 蓝图中创建相当于 Unity LookAt 的功能呢?

c++ vector rotation unreal-engine4 unreal-blueprint

6
推荐指数
2
解决办法
2万
查看次数

使用 Python 从虚幻引擎中的类中生成 actor

使用蓝图,我可以SpawnActorFromClass使用StaticMeshActor,但是通过内置的 Python 脚本插件使用 Python 脚本,

unreal.EditorLevelLibrary().spawn_actor_from_class(ue.Class(name='StaticMeshActor'), location, rot)
Run Code Online (Sandbox Code Playgroud)

我有:

LogPython: Error: TypeError: EditorLevelLibrary: Failed to convert parameter 'actor_class' when calling function 'EditorLevelLibrary.SpawnActorFromClass' on 'Default__EditorLevelLibrary'
LogPython: Error:   TypeError: NativizeProperty: Cannot nativize 'Class' as 'ActorClass' (ClassProperty)
LogPython: Error:     TypeError: NativizeClass: Cannot nativize 'Class' as 'Class' (allowed Class type: 'Actor')
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

python scripting unreal-engine4 unreal-blueprint

5
推荐指数
1
解决办法
1802
查看次数

如何在 C++ 中重写 BlueprintNativeEvent 函数?

我想BlueprintNativeEvent在 C++ 的派生类中实现标记为 的函数的一部分,而其他人则在派生蓝图类中实现该函数的一部分。

然而,该函数似乎不是一个virtual函数,所以我不知道如何override在 C++ 中使用它(尽管在蓝图中它可以工作)。来自 GameplayAbilitySystem 的示例:

UFUNCTION(BlueprintNativeEvent, Category="Calculation")
float CalculateBaseMagnitude(const FGameplayEffectSpec& Spec) const;
Run Code Online (Sandbox Code Playgroud)

如何在 C++ 的派生类中重写它?

c++ polymorphism unreal-engine4 unreal-blueprint

3
推荐指数
1
解决办法
6773
查看次数

将纹理的 STRING 名称转换为蓝图中的 TEXTURE 引用

我有“从纹理制作画笔”节点,并且可以从编辑器的下拉列表中选择纹理,但是如果其名称保存在字符串变量中(例如“af”),如何从蓝图中实时设置此纹理字段)。谢谢。

例子:

https://blueprintue.com/blueprint/4indn35l/

建议:

理论上,应该有一个包含所有加载的系统纹理的数组,我可以循环,逐一比较纹理的名称,并将正确的纹理发布到“从纹理创建画笔”的插槽中。

谢谢!

unreal-engine4 unreal-blueprint

3
推荐指数
1
解决办法
4005
查看次数

如何使虚幻引擎4全屏(Windows包)

我对虚幻引擎 4 非常陌生,我需要一些帮助,我在互联网上找不到答案,所以我希望这里有人可以提供帮助。

当我打开游戏时进入Package项目(Windows)时,如何使其始终默认全屏?所以当我打开游戏时它将是全屏的。

有我可以用来做到这一点的蓝图吗?如果没有,您必须对其进行编程,您能否告诉我必须放置代码或其他内容的确切位置,因为就像我说的那样。我是个新手,大麦知道这个界面以及如何使用它。(我来自Unity)

windows fullscreen package unreal-engine4 unreal-blueprint

2
推荐指数
1
解决办法
4万
查看次数

如何在代码中创建一个抽象类,让蓝图扩展它,然后将该蓝图返回给代码进行实例化?

假设我想在代码中创建一个用于控制 pawn 的 AI 类,但我希望我的设计师能够使用蓝图来修改行为以进行快速迭代。

假设我在MyProjectBaseAI.h 中有这个:

#pragma once

#include "EngineMinimal.h"
#include "GameFramework/Actor.h"
#include "MyProjectBaseAI.generated.h"

UCLASS()
class MYPROJECT_API AMyProjectBaseAI : AActor
{
    GENERATED_BODY()

public:
    AMyProjectBaseAI(const FObjectInitializer& ObjectInitializer);

    virtual void BeginPlay() override;

    virtual void Tick(float DeltaSeconds) override;

    void SetGoalPosition(FVector pos);

    virtual void DetermineGoalPosition(int32 stateData1, int32 stateData2) = 0;

private:
    FVector goalPosition;
};
Run Code Online (Sandbox Code Playgroud)

我想让这个类抽象,并有一个蓝图能够根据他们的 AI 设计实现DetermineGoalPosition(...);调用SetGoalPosition(FVector pos)

那么,设计人员如何在检查器中设置实现类,以便我的 C++ 代码可以实例化它?假设我正在使用AMyProjectBaseAI ai = World->SpawnActor<AMyProjectBaseAI>(...);

c++ abstract-class unreal-engine4 unreal-blueprint

2
推荐指数
1
解决办法
4275
查看次数

获取两个演员之间的偏航角 - 虚幻蓝图

我正在使用蓝图在虚幻引擎 4 中开发 VR 游戏。

我想计算用户需要转动他/她的枪(其方向通过运动控制器的位置确定)以指向目标所需的(偏航)角度。

我认为这可能是这样做的方法:

  • 从枪的位置减去目标的位置
  • 将其偏航分量作为从枪指向的矢量作为原点
  • 从那个偏航分量中减去枪方向的当前偏航,得到用户需要转动才能到达目标的偏航角

除了我不太确定如何执行。我一直在试验(如下面的屏幕截图所示),但没有进行正确的操作。有什么想法吗?

谢谢!

虚幻引擎 4 截图

vector angle unreal-engine4 virtual-reality unreal-blueprint

2
推荐指数
1
解决办法
8053
查看次数

UE4:如何检测蓝图中的actor refrence 是否已被破坏?

在一个关卡中,我正在创造一个演员,该演员旨在在某些时候而不是在其他时候存在。我很好地生成了演员,并计划在我不需要它时销毁它。但我想确保我不会处于这样一种状态:当演员不存在时,我会试图对演员采取行动。

我正在考虑带有 new、delete 和 nullptr 的 c++ 对象指针。我将变量初始化为 nullptr,在使用 new 时分配指针,完成后删除指针,然后将变量重新分配为 nullptr。这样我就可以通过检查指针是否不等于 nullptr 来检查指针是否有效。

什么(如果有的话)相当于 UE4 蓝图中这个看似基本的概念?

null reference unreal-engine4 unreal-blueprint

2
推荐指数
1
解决办法
6563
查看次数

如何在没有 InputAction 的情况下获得 Action Key?

我想创建文本“按 {InteractKey} 进行 {Interact}”。

如何在不使用 InputAction 的情况下获取绑定到 Interact 操作绑定 (“F”) 的密钥?我想获得钥匙而不触发事件。

所以最后我的文字会说“按 F 来做这件事”。

在此输入图像描述

unreal-engine4 unreal-blueprint

2
推荐指数
1
解决办法
3741
查看次数

UE4在播放过程中启用鼠标?

我是UE的新手,并做了一些简单的入门教程,因此我并不完全知道可用来帮助我找到所需内容的正确术语。游戏开始,我的鼠标消失,我只能使用我设置的输入;所以我的问题是,即使我不需要鼠标输入即可移动(如使用WASD一样),如何保持鼠标解锁并可以在不锁定相机的情况下移动?

unreal-engine4 unreal-blueprint

1
推荐指数
2
解决办法
6489
查看次数

为什么UPROPERTY说明符Visible*/Edit*与BlueprintRead*一起使用

虚幻引擎4提供了三个说明符来控制暴露给Blueprint via的C++类成员的可见性和可编辑性UPROPERTY().

UE4源代码中的文档(另请参阅UE4 wiki,UE4文档)说明了关于可编辑性的以下内容:

  • 对于VisibleAnywhere,VisibleInstanceOnly,VisibleDefaultsOnly:

    ...根本无法编辑.

  • 对于EditAnywhere,EditInstanceOnly,EditDefaultsOnly:

    ......可以编辑......

  • 用于BlueprintReadOnly:

    ...可以通过蓝图读取,但不能修改.

    并且BlueprintReadWrite:

    ......可以从蓝图中读取或写入.

问题:

  1. 由于说明Visible*符已经将使用限制为在蓝图中读取,为什么它与BlueprintReadOnly?一起使用?第二个说明符不是多余的吗?例:

    UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly)
    UMyActorComponent* MyActorComponent;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更令人困惑的是使用说明Edit*符,它允许在Blueprint中进行读写,同时BlueprintReadOnly限制在Blueprint中只读.两个指定者不是互相反对的吗?例:

    UPROPERTY(EditAnywhere, BlueprintReadOnly)
    UMyActorComponent* MyActorComponent;
    
    Run Code Online (Sandbox Code Playgroud)
  3. Visible*/ Edit*说明符是否在与说明符不同的上下文中有效BlueprintRead*?(问题不在于InstanceOnly(实例的属性窗口),DefaultsOnly(原型的属性窗口)和Anywhere(实例和原型))

unreal-engine4 unreal-blueprint

1
推荐指数
1
解决办法
1471
查看次数

C++ 等效蓝图事件调度程序与蓝图事件

我知道代表相当于调度员。但事件声明的类型有很多种。使用 UFUNCTION 宏事件可以使用 BlueprintNativeEvents 和 BlueprintImplementableEvent 来定义。但还有 DECLARE_EVENT 宏。我喜欢把事情想得太多。有人可以解释调度程序、事件和各种类型事件之间的区别吗?在观察者模式中,调度程序是可观察的,事件是这些可观察的观察者吗?

c++ unreal-engine4 unreal-blueprint

1
推荐指数
1
解决办法
4593
查看次数