最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 最简单的 UE 4 C++ 教程 —— 平滑设置玩家的相机(视图目标)到 Actor 位置【十三】

    正文概述 掘金(ShaderJoy)   2021-07-27   998

    原教程是基于 UE 4.18,我是基于 UE 4.25】

    英文原地址

    接上一节教程,在这个简单的教程中,我们将在游戏开始时,简单地平滑混合运动来改变玩家的视图目标。

    创建一个新的 C++ Actor 子类并将其命名为 SetViewTargetBlend 。在头文件中,我们将声明一个 actor 变量,并将其称为 MyActor 并使新角色在任何地方都可编辑。

     

    SetViewTargetBlend.h

    #pragma once
    
    #include "CoreMinimal.h"
    #include "GameFramework/Actor.h"
    #include "SetViewTargetBlend.generated.h"
    
    UCLASS()
    class UNREALCPP_API ASetViewTargetBlend : public AActor
    {
    	GENERATED_BODY()
    	
    public:	
    	// Sets default values for this actor's properties
    	ASetViewTargetBlend();
    
    protected:
    	// Called when the game starts or when spawned
    	virtual void BeginPlay() override;
    
    public:	
    	// Called every frame
    	virtual void Tick(float DeltaTime) override;
    
    	// declare variables
    	UPROPERTY(EditAnywhere)
    	AActor* MyActor;
    	
    };
    

    最简单的 UE 4 C++ 教程 —— 平滑设置玩家的相机(视图目标)到 Actor 位置【十三】

    首先,为了拥有玩家,我们需要 #include Kismet/GameplayStatics.h 文件。

    #include "SetViewTarget.h"
    // include gameplay statics header file
    #include "Kismet/GameplayStatics.h"
    

    最简单的 UE 4 C++ 教程 —— 平滑设置玩家的相机(视图目标)到 Actor 位置【十三】

    在这个例子中,我们所有的逻辑都放在了 BeginPlay 函数中【不是构造函数中哦,不然 UE4 可能会崩溃】。我们需要通过执行UGameplayStatics::GetPlayerController(this, 0) 来拥有当前玩家。这将获得游戏场景中的第一个玩家。

    接下来,我们将使用 SetViewTargetWithBlend(MyActor, 2.f) 将我们拥有的玩家的视图目标设置为 MyActor 变量。我们将混合时间设置为 2 秒,这将指示相机移动到新目标所需要的时间。

    下面是最后的 .cpp 文件。

    SetViewTargetBlend.cpp

    #include "SetViewTargetBlend.h"
    // include gameplay statics header file
    #include "Kismet/GameplayStatics.h"
    
    
    // Sets default values
    ASetViewTargetBlend::ASetViewTargetBlend()
    {
     	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
    	PrimaryActorTick.bCanEverTick = true;
    
    }
    
    // Called when the game starts or when spawned
    void ASetViewTargetBlend::BeginPlay()
    {
    	Super::BeginPlay();
    
    	//Find the actor that handles control for the local player.
    	APlayerController* OurPlayerController = UGameplayStatics::GetPlayerController(this, 0);
    	
    	//Smoothly transition to our actor on begin play.
    	OurPlayerController->SetViewTargetWithBlend(MyActor, 2.f);
    	
    }
    
    // Called every frame
    void ASetViewTargetBlend::Tick(float DeltaTime)
    {
    	Super::Tick(DeltaTime);
    
    }
    

    最简单的 UE 4 C++ 教程 —— 平滑设置玩家的相机(视图目标)到 Actor 位置【十三】

    编译代码。将新角色拖放到游戏中。在编辑器中,向 actor 的细节面板中的 MyActor 变量添加一个静态网格。

    按下播放键,玩家的摄像机将在 2 秒内移到新角色身上。

    效果如下

    最简单的 UE 4 C++ 教程 —— 平滑设置玩家的相机(视图目标)到 Actor 位置【十三】最简单的 UE 4 C++ 教程 —— 平滑设置玩家的相机(视图目标)到 Actor 位置【十三】

     


    起源地下载网 » 最简单的 UE 4 C++ 教程 —— 平滑设置玩家的相机(视图目标)到 Actor 位置【十三】

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元