1 反向实现思路设计
先看最终效果:
先做了一个大致的分区,右侧的上半部分用来显示数据,下半部分用来强化和显示需要的材料,至于这个背景设定上强化应该叫什么,。。。。,还没定,反正应该不叫强化,高低得叫个源能刺激基因啥的()。左边是选择词条,之后会设计成技能树的结构,暂时先放了几个元素但是还没实现。
2 完善数据的显示
能显示的数据没多少,查找数据没有用遍历来写,等我有时间学学怎么按变量名称遍历结构体里的变量再改成遍历查找,现在直接if写的史。
完善后的Get函数:
float UUserWidget_StrengthenPad::GetAttributeByName(FString AttributeName)
{
UE_LOG(LogTemp,Warning,TEXT("GetAttributeByName-->Start"));
if(AttributeName.Equals(FString("MaxHealth")))
{
return TempSavedAttributes.MaxHealth;
}
if(AttributeName.Equals(FString("BaseAttack")))
{
return TempSavedAttributes.BaseAttack;
}
if(AttributeName.Equals(FString("BaseResistance")))
{
return TempSavedAttributes.BaseResistance;
}
if(AttributeName.Equals(FString("BaseStagger")))
{
return TempSavedAttributes.BaseStagger;
}
if(AttributeName.Equals(FString("CRT")))
{
return TempSavedAttributes.CRT;
}
if(AttributeName.Equals(FString("CriticalDamage")))
{
return TempSavedAttributes.CriticalDamage;
}
UE_LOG(LogTemp,Warning,TEXT("GetAttributeByName-->NotFind"));
return 0.f;
}
界面蓝图里的Update接口都按这个来实现:
构建的时候读取数据并更新一次信息:
3 添加InterAct按键响应
添加一个按键来控制这个界面的可视性(暂时):
EnhancedInputComponent->BindAction(IA_InterAct, ETriggerEvent::Triggered, this, &AMyPlayer::OnInterAct);
这里的OnInterAct是一个蓝图实现事件
好好好,今天的大部分时间都在做那个UI界面了,看起来短其实做的时间挺长的(苦)