1 实现思路
1.给WarehouseManager添加一个按TArray增加物品的函数
2.Enemy身上一个变量记录掉落物品,死亡时调用增加物品函数
3.同时调用UI显示
2 实现过程
2.1 在WarehouseManager里添加一个AddItemByArray函数
遍历数组调用添加函数
void UWarehouseManager::AddItemByArray(TArray<FMyItemInfo> ItemsToAdd)
{
for(int32 i = 0; i < ItemsToAdd.Num(); i++)
{
AddItemToWarehouse(ItemsToAdd[i].ItemId,ItemsToAdd[i].CurrentOwnedCnt,ItemsToAdd[i].DisplayName);
}
}
2.2 在Enemy中添加RewardItems变量
UPROPERTY(EditAnywhere,BlueprintReadWrite,Category="Items")
TArray<FMyItemInfo> RewardItems;
在蓝图中设置值:
(之后测试用的新的值)
在死亡逻辑处调用:
LogMes是打印仓库信息的函数
输出信息:
能看出来正确添加了
2.3 添加UI
新建一个容器,实现Show函数,动态创建
创建完加一个延时移除:
每个单元里要实现更新信息的函数:
最后在Enemy死亡时加入显示UI的逻辑:
3 测试效果
左侧的提示是敌人死亡时动态添加的