标签: unreal-engine4

UE4 - 我怎样才能在暂停时使屏幕模糊?

这就是我想知道的.我根本不了解虚幻的引擎脚本..

我知道如何手动启用模糊,但如何在暂停时启用模糊?

我有一个带有RESUME和EXIT按钮的Widget蓝图.当我打开菜单时,背景应该模糊..现在可以通过按Tab键打开菜单(因为在编辑器中ESC退出测试模式......)

那么如何让它在暂停时变得模糊?

unreal-engine4

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

将Facebook Android SDK .aar文件转换为Java Library Project

我正在尝试将facebook android sdk .aar文件转换为Java Library Project(并在虚幻引擎4中将其用作OnlineSubsystem).

我做了什么(根据这个答案 - Eclipse ANT项目中的AAR):

  1. 下载facebook-android-sdk-4.10.1,解压缩,将facebook-android-sdk-4.10.1.aar重命名为facebook-android-sdk-4.10.1.zip.
  2. 解压facebook-android-sdk-4.10.1.zip.
  3. 在Eclipse中创建新的android java库项目.
  4. 将classes.jar(来自facebook-android-sdk-4.10.1.aar)添加到Eclipse项目的libs中.
  5. 用.aar文件的res文件夹替换eclipse项目的res文件夹.
  6. 创建新的Android应用程序并将facebook库项目添加到Android应用程序项目.
  7. 将所有从facebook .aar的AndroidManifest.xml复制到android应用程序项目.

当我尝试构建应用程序时,我总是会遇到这些错误:

  1. res\layout\com_facebook_device_auth_dialog_fragment.xml:22:错误:在'com.facebook'包中找不到属性'cardBackgroundColor'的资源标识符
  2. res\layout\com_facebook_device_auth_dialog_fragment.xml:22:错误:在'com.facebook'包中找不到属性'cardElevation'的资源标识符

CardView声明(有错误)如下所示:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
card_view:cardBackgroundColor="@android:color/transparent"
card_view:cardElevation="10dp">
Run Code Online (Sandbox Code Playgroud)

当我删除这两个属性时一切正常,但我想知道如何构建我的项目而不删除任何东西.

虚幻引擎使用ant构建系统来构建android应用程序,所以,请不要让我使用gradle.

谢谢.

ant facebook facebook-android-sdk aar unreal-engine4

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

AActor*UactorComponent :: GetOwner const - 不允许指向不完整类类型的指针

我是UE4开发的新手,我遵循了Udemy的虚幻引擎开发课程.我在Actor上创建了一个新的Component,名为PositionReporter,标题为PositionReporter.h

#pragma once

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "PositionReporter.generated.h"


UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class BUILDINGESCAPE_API UPositionReporter : public UActorComponent
{
    GENERATED_BODY()

public: 
    // Sets default values for this component's properties
    UPositionReporter();

protected:
    // Called when the game starts
    virtual void BeginPlay() override;

public: 
    // Called every frame
    virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
};
Run Code Online (Sandbox Code Playgroud)

以及PositionReporter.cpp中的代码

#include "PositionReporter.h"

// Sets default values for this component's properties
UPositionReporter::UPositionReporter()
{
    // Set this component to be initialized when the game …
Run Code Online (Sandbox Code Playgroud)

c++ unreal-engine4

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

在虚幻引擎 C++ 中设置计时器

我在虚幻引擎 4 中创建计时器时遇到问题。问题出在 GetWorldTimerManager 中。当我对此调用设置计时器时,我收到 E0070 不完整类型错误。通常这意味着我未能包含某些内容

void ACubeFarmBlock::HandleClicked()
{
    if (!bIsPlanted)
    {
        bIsPlanted = true;

        // Change material
        BlockMesh->SetMaterial(0, OrangeMaterial);

        // Determine when to harvest
        GetWorldTimerManager().SetTimer(HarvestTimerHandle, &ACubeFarmBlock::Harvest, HarvestTime,false);
    }
}
Run Code Online (Sandbox Code Playgroud)

HarvestTimerHandle 在标头中定义。以下是包含的列表。MyActor.h 包含一个定义 GetWorldTimerManager 的方法,因此我认为我已经包含了所有内容。值得注意的是,当我在线查找计时器函数时,我发现了几个站点,其中此设置计时器方法包含插入在 HarvestTimerHandle 参数和 &ACubeFormBlock::Harvest 参数之间的 this 参数。包括这一点并不会让我的错误消失。

#include "CubeFarmBlock.h"
#include "CubeFarmBlockGrid.h"
#include "UObject/ConstructorHelpers.h"
#include "Components/StaticMeshComponent.h"
#include "Engine/StaticMesh.h"
#include "Materials/MaterialInstance.h"
#include "MyActor.h"
Run Code Online (Sandbox Code Playgroud)

错误:

..\CubeFarmBlock.cpp(76): 注意:请参阅正在编译的函数模板实例化 'TFunction::TFunction(FunctorType &&)' 的参考 1> with 1> [ 1> FunctorType=void (__cdecl ACubeFarmBlock::* )(float ) 1>]

严重性代码 描述 项目文件行抑制状态错误(活动)
E0070 不允许 CubeFarm ..\CubeFarmBlock.cpp …

c++ timer unreal-engine4

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

使用 FObjectFinder 加载资源

我正在处理引擎中包含的 FPS 示例代码。我正在尝试加载我添加到内容浏览器中的新骨架网格物体,并根据特定条件分配给我的骨架网格物体组件。

这是我尝试用于加载骨架网格体的代码,但似乎无法从该路径加载,因为它无法优化资产:

 ConstructorHelpers::FObjectFinder<USkeletalMesh> newAsset(TEXT("SkeletalMesh'/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun.uasset'"));
Run Code Online (Sandbox Code Playgroud)

给出路径的方式有什么问题吗?它只是一个简单的资产负载

提前致谢

unreal-engine4

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

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

假设我想在代码中创建一个用于控制 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
查看次数

这个方法的参数代码是什么意思呢?

正如标题所说,TBitArray<>没有确切的类型,那么这是否意味着该方法可以接受任何诸如TBitArray<int32>, TBitArray<float>, ... 作为参数?

FORCEINLINE bool HasAll(const TBitArray<>& Other) const
{
    FConstWordIterator ThisIterator(*this);
    FConstWordIterator OtherIterator(Other);

    while (ThisIterator || OtherIterator)
    {
        const uint32 A = ThisIterator ? ThisIterator.GetWord() : 0;
        const uint32 B = OtherIterator ? OtherIterator.GetWord() : 0;
        if ((A & B) != B)
        {
            return false;
        }

        ++ThisIterator;
        ++OtherIterator;
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

这段代码有什么区别

template<class T>
FORCEINLINE bool HasAll(const TBitArray<T>& Other) const
Run Code Online (Sandbox Code Playgroud)

c++ templates unreal-engine4 unreal-engine5

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

在Visual Studio 2017中使用UE4

我最近对我的驱动器进行了一些清理,并决定在清理后安装Visual Studio 2017.我一直在尝试使用从git hub拉出的引擎继续处理我的UE4项目.我尝试用VS2017重建项目,我知道还没有完全支持.我遇到了很多问题,比如缺少corecrt.h文件,我重新安装了Windows SDK来修复.

当前的问题是一个名为windows.h的新丢失文件,因为构建它时会查找错误版本的SDK.我想知道是否有其他人已成功将Visual Studio 2017与他们的UE4项目集成,如果他们遇到类似的问题并修复了它们.

c++ unreal-engine4 visual-studio-2017

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

哪种 UE4 类最适合在多人游戏中存储用户数据

在多人游戏环境中,哪个 UE4 类最适合存储用户数据?

要求是数据

  1. 级别之间必须保持一致
  2. 如果用户拥有的 actor 被销毁,则必须是持久的
  3. 与会话的其他用户无关。它仅与服务器和所有者相关。

由于 (1) 和 (2),将其存储在用户 actor 上不是一种选择。我想到的是

  • PlayerController,但是它在级别之间是否持续存在?
  • PlayerState复制设置COND_OwnerOnly为特定数据,但它在级别之间是否持久?

还有其他类更符合上述要求吗?

multiplayer unreal-engine4

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