UE4 Slate教程1——快速入门

1、新建项目

本教程基于Wiki中的“Slate, Hello”项目作为引导。

1、新建空白蓝图项目,命名为HelloSlate:
新建项目
2、使用类向导,添加一个HUD类,命名为“StandardHUD”:
新建HUD类
3、再添加一个Slate控件类,命名为“StandardSlateWidget”:
新建Slate控件类
4、添加模块依赖,打开HelloSlate.Build.cs,取消注释如下代码:

// Uncomment if you are using Slate UI
PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });

此后最好刷新一下项目:
刷新项目

2、编写代码

HUD类

StandardHUD.h:

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "StandardHUD.generated.h"

UCLASS()
class HELLOSLATE_API AStandardHUD : public AHUD
{
	GENERATED_BODY()

public:
	TSharedPtr<class SStandardSlateWidget> MyUIWidget;

	virtual void BeginPlay() override;
};

StandardHUD.cpp:

#include "StandardHUD.h"
#include "SStandardSlateWidget.h"
#include "Engine/Engine.h"
#include "Engine/GameViewportClient.h"
#include "DeclarativeSyntaxSupport.h"
#include "Widgets/SWeakWidget.h"

void AStandardHUD::BeginPlay()
{
	Super::BeginPlay();

	GEngine->GameViewport->AddViewportWidgetContent(
		SNew(SWeakWidget)
		.PossiblyNullContent(SAssignNew(MyUIWidget, SStandardSlateWidget))
	);
}

Slate控件类

SStandardSlateWidget.h:

#pragma once

#include "CoreMinimal.h"
#include "Widgets/SCompoundWidget.h"
#include "DeclarativeSyntaxSupport.h"

class HELLOSLATE_API SStandardSlateWidget : public SCompoundWidget
{
public:
	SLATE_BEGIN_ARGS(SStandardSlateWidget)
	{}
	SLATE_END_ARGS()

	/** Constructs this widget with InArgs */
	void Construct(const FArguments& InArgs);
};

SStandardSlateWidget.cpp:

#include "SStandardSlateWidget.h"
#include "SlateOptMacros.h"
#include "Widgets/Text/STextBlock.h"

BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
void SStandardSlateWidget::Construct(const FArguments& InArgs)
{	
	ChildSlot
	[
		SNew(STextBlock)
		.Font(FSlateFontInfo("Veranda", 100))
		.Text(NSLOCTEXT("HelloSlate", "HelloSlateText", "Hello, Slate!"))
	];
	
}
END_SLATE_FUNCTION_BUILD_OPTIMIZATION

3、查看效果

编译项目,添加一个GameMode蓝图类命名为“HelloSlateGameMode”,设置其HUD Class为:StandardHUD
设置GameMode的HUD Class
并添加以下蓝图节点以显示光标:
显示光标
打卡世界设置,将GameModeOverride设置为刚才新建的GameMode:
设置GameMode
点击运行,即可看到效果:
效果

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值