UEC++学习(五)之 绘制十字准星,组件拥有者不可见等

目录

通过HUD类创建十字准星

设置组件拥有者不可见


通过HUD类创建十字准星

创建HUD类,需要重载DrawHUD()函数;

DrawHUD():负责渲染,每一帧执行,可以在此函数中绘制线条

UCLASS()
class SHOOTTHEMUP_API ASTUGameHUD : public AHUD
{
	GENERATED_BODY()
	
public:
	virtual void DrawHUD() override;

private:
	void DrawCrossHair();

};

TInterval<>:模板函数,用于表示一个区间,包含了最小和最大值,可以用于判断两个区间是否重叠,合并两个区间等,比如Center.Contains(X),检查X是否在区间

Canvas->SizeX SizeY:获取屏幕大小

FLinearColor::Green 绿色

DrawLine:用于绘制线,参数:起始X,起始Y,终点X,终点Y,线颜色,线粗细

#include "Engine/Canvas.h"


void ASTUGameHUD::DrawHUD()
{
	Super::DrawHUD();

	DrawCrossHair();
}

void ASTUGameHUD::DrawCrossHair()
{
	//TInterval<>:特殊类型,用于表示一个区间,包含了最小和最大值,可以用于判断两个区间是否重叠,合并两个区间等,Center.Contains(X),检查X是否在区间
	//Canvas->SizeX SizeY:获取屏幕大小
    const TInterval<float> Center(Canvas->SizeX * 0.5, Canvas->SizeY * 0.5);
	const float HalfLineSize = 10.0f;
	//线的粗细
	const float LineThickness = 2.0f;
	//线的颜色
	const FLinearColor LineColor = FLinearColor::Green;

	//DrawLine:用于绘制线,参数:起始X,起始Y,终点X,终点Y,线颜色,线粗细
	//绘制X方向的线
	DrawLine(Center.Min - HalfLineSize,Center.Max,Center.Min + HalfLineSize,Center.Max,LineColor,LineThickness);
	//绘制Y方向的线
	DrawLine(Center.Min,Center.Max - HalfLineSize,Center.Min,Center.Max+HalfLineSize,LineColor,LineThickness);
}

GameMode覆盖新的HUD类

ASTUGameModeBase::ASTUGameModeBase()
{
	DefaultPawnClass = ASTUBaseCharacter::StaticClass();
	PlayerControllerClass = ASTUPlayerController::StaticClass();
	HUDClass = ASTUGameHUD::StaticClass();

}

设置组件拥有者不可见

SetOwnerNoSee():拥有者不可见

	HealthTextComponent->SetOwnerNoSee(true);

对应在蓝图中搜索See

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值