最简单的 UE 4 C++ 教程 —— 隐藏并禁用游戏中的 Actor【八】
【摘要】
【原教程是基于 UE 4.18,我是基于 UE 4.25】
英文原地址
接上一节,要在游戏中完全隐藏角色,你必须做三件事。
你必须禁用它的碰撞,禁用它的滴答声,并将其隐藏在游戏中。
您可以将代码添加到任何 actor 子类实例上。对于本例,我创建了一个单独的 actor 来演示它的用途。
创建一个名为 Hide...
【原教程是基于 UE 4.18,我是基于 UE 4.25】
接上一节,要在游戏中完全隐藏角色,你必须做三件事。
- 你必须禁用它的碰撞,
- 禁用它的滴答声,
- 并将其隐藏在游戏中。
您可以将代码添加到任何 actor 子类实例上。对于本例,我创建了一个单独的 actor 来演示它的用途。
创建一个名为 HideActor 的 actor。在头文件中我创建了两个:通过 bool HideInGame 来跟踪,如果我们想禁用 actor 的话,并在 void DisableActor 运行所有我们需要禁用的元素。我们将这两个变量放在 Disable 类别中,以使它们与 actor 的其他属性区分开
HideActor.h
-
#pragma once
-
-
#include "CoreMinimal.h"
-
#include "GameFramework/Actor.h"
-
#include "HideActor.generated.h"
-
-
UCLASS()
-
class UNREALCPP_API AHideActor : public AActor
-
{
-
GENERATED_BODY()
-
-
protected:
-
// Called when the game starts or when spawned
-
virtual void BeginPlay() override;
-
-
public:
-
// Called every frame
-
virtual void Tick(float DeltaTime) override;
-
-
UPROPERTY(EditAnywhere, Category = "Disable")
-
bool HideInGame;
-
-
UFUNCTION(BlueprintCallable, Category = "Disable")
-
void DisableActor(bool toHide);
-
-
};
在 BeginPlay() 中,我们检查 HideInGame 是否为真。如果为真,则运行 DisableActor() 。DisableActor() 隐藏actor,禁用它的冲突,并禁用它运行每一帧。
HideActor.cpp
-
#include "HideActor.h"
-
-
// Called when the game starts or when spawned
-
void AHideActor::BeginPlay()
-
{
-
Super::BeginPlay();
-
-
if (HideInGame)
-
{
-
DisableActor(HideInGame);
-
}
-
-
}
-
-
// Called every frame
-
void AHideActor::Tick(float DeltaTime)
-
{
-
Super::Tick(DeltaTime);
-
}
-
-
void AHideActor::DisableActor(bool toHide)
-
{
-
// Hides visible components
-
SetActorHiddenInGame(toHide);
-
-
// Disables collision components
-
SetActorEnableCollision(false);
-
-
// Stops the Actor from ticking
-
SetActorTickEnabled(false);
-
}
效果演示
为了方便演示,为 actor 添加了 cube 组件
当 Hide In Game 为 false 时运行游戏
当 Hide In Game 为 true 时运行游戏
文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。
原文链接:panda1234lee.blog.csdn.net/article/details/119103980
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)