虚幻引擎UE5专用服务器游戏开发-19 设置头顶状态条可见性控制

头顶状态条的动态显示控制。状态条会根据与玩家角色的距离(默认300单位)进行自动隐藏,并通过定时器(默认0.2秒频率)持续检测距离变化。当角色由本地玩家控制时,状态条会自动隐藏。代码采用服务器-客户端初始化架构,并包含碰撞设置、组件创建等基础角色配置。

Source/Crunch/Public/Character/CCharacter.h:

变量:


	//计时器频率
	UPROPERTY(EditDefaultsOnly, Category="UI")
	float CheakUpdateRate = 0.2f;

	//状态条可见距离
	UPROPERTY(EditDefaultsOnly, Category="UI")
	float CheakUpdateDistance = 300.f;

	// 距离检测计时器句柄
	FTimerHandle VisibilityCheckTimerHandle;

函数:

	//检测状态条可见性
	void UpdateHeadGaugeVisibility();

Source/Crunch/Private/Character/CCharacter.cpp:


		GetWorldTimerManager().ClearTimer(VisibilityCheckTimerHandle);
		GetWorldTimerManager().SetTimer(VisibilityCheckTimerHandle, this, &ACCharacter::UpdateHeadGaugeVisibility, CheakUpdateRate, true);

void ACCharacter::UpdateHeadGaugeVisibility()
{
	//测算距离
	APawn* PlayerPawn = UGameplayStatics::GetPlayerPawn(GetWorld(), 0);
	if (!PlayerPawn) return;
	float Distance = FVector::DistSquared(GetActorLocation(), PlayerPawn->GetActorLocation());
	//隐藏状态条
	OverHeadWidgetComponent->SetHiddenInGame(Distance > CheakUpdateDistance*CheakUpdateDistance);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值