【问题标题】:Problem with inventory replication on Unreal Engine 4虚幻引擎 4 上的库存复制问题
【发布时间】:2021-03-01 23:30:47
【问题描述】:
我在 UE4 上制作了一个库存系统,但为了自己做库存,我创建了一个组件,它代表玩家的库存和可拾取车辆的库存。
问题在于,当我在车辆库存中取出物品时,我会将其从库存中删除,并在玩家库存中创建一个插槽来存储该物品。但是插槽刷新是在 HUD 中进行的,所以我不知道如何复制它。我应该在 BP_character 中而不是在 HUD 中重新编码这整个部分吗?
【问题讨论】:
标签:
replication
unreal-engine4
multiplayer
inventory
【解决方案1】:
我不是专业人士,我在您正在研究的同一领域遇到了自己的问题,但我认为您确实希望您的库存作为您角色的一个组件(具有阵列和库存逻辑组件蓝图中的东西)。然后,每当玩家打开相应的 HUD 来查看他们的库存时,它都会根据库存组件数组中的内容加载 HUD。对数组的所有更改都应由服务器显式完成(通过确保它被复制并在您对数组进行更新的任何地方进行权限检查。
【解决方案2】:
您走在正确的轨道上,因为 HUD 不是存放库存的地方。角色是一个更好的地方,但保存它的最佳位置是在 GameInstance 中。
GameInstance 是一个持久类,始终可在游戏中的任何位置使用。这使得它对您的库存之外的许多事情都非常有用。
在此处保留库存意味着您可以在任何您喜欢的地方使用代码将物品移入或移出玩家的库存。例如。如果一个 NPC 想要给玩家一个物品,你可以在 NPC 类中使用代码来实现,因为 NPC 类可以看到玩家的物品栏。
同样,如果物品栏在 GameInstance 上,HUD 也可以看到它。