问题描述
我在 UE4 上创建了一个库存系统,但为了自己进行库存,我创建了一个组件来表示玩家的库存和可掠夺车辆的库存。
问题在于,当我在车辆的库存中取东西时,我会将其从库存中删除,并在玩家库存中创建一个插槽来存储该物品。但是插槽刷新是在HUD中进行的,所以我不知道如何复制它。我应该在 BP_character 中而不是在 HUD 中重新编码整个部分吗?
解决方法
我不是专业人士,我在您正在处理的同一领域遇到了自己的问题,但我认为您确实希望您的库存作为角色的一个组件(具有数组和库存逻辑)组件蓝图中的内容)。然后,每当玩家打开他们合适的 HUD 来查看他们的库存时,它会根据库存组件的数组中的内容加载 HUD。对阵列的所有更改都应由服务器显式完成(通过确保复制并在对阵列进行更新的任何地方进行权限检查。
,您走在正确的轨道上,因为 HUD 不是保存库存的地方。角色是一个更好的地方,但最好的地方是在 GameInstance 中保存它。
GameInstance 是一个持久类,在游戏中的任何地方都可以使用。这使得它对于您的库存之外的许多事情都非常有用。
在这里保留物品栏意味着您可以在任何您喜欢的地方使用代码将物品移入或移出玩家的物品栏。例如。如果 NPC 想要给玩家一个物品,你可以通过 NPC 类上的代码来实现,因为 NPC 类可以看到玩家的库存。
同样,如果库存在 GameInstance 上,HUD 也可以看到它。