UE4-创建一个背包系统

内容:

1.UMG显示背包内容

2.背包内容数据存放在PlayerState中

3.当玩家拾取物品的时候,动态修改背包数据:(UMG也要动态修改背包内容)

          如果背包中已经有这个物品,则物品数量+1

          如果背包中没有这个物品,则增加这个物品的类

4.物品的信息存放有:物品名称、物品的图标、物品的Mesh、物品的数量

5.当丢弃物品的时候,物品数量-1,并把物品丢弃在身边

6.双击物品,打开详情图(添加一个新的UMG)

 

制作:

1.构建存储物品信息的结构体

2.制作可拾取物品的蓝图:蓝图包含物品的信息,拾取的方式(比如:鼠标点击)

3.把拾取的物品信息存放在PlayerState中

4.UMG显示背包内容,物品使用Scrollbox滚动容器来存储物品,把物品小格子制作成单独的UMG用于添加到滚动容器中。小格子中的图片、名称等信息从存放数据中的PlayerSate中提取 便于动态增减背包物品,这里有更多的细节(如果背包是网格状的,添加的小格子要计算好几排几列,位置可能会不准,可以添加一整排格子,没内容的格子不显示)善用Sizebox、竖向排布、横向排布、网格排布、space(增加物品显示的功能:在Scrollbox中添加子控件--小格子,重要变量:增加的数量、每格的位置、每格的信息内容)

5.当鼠标点击其中一个物品时,物品边框高亮,其他物品的取消高亮,选择的物品记录到某个蓝图中(如:PlayerState

6.当点击丢弃的时候,物品数量减1,如果物品数量为0时,在列表(数组)中删除数据;在身边生成物品actor,把物品的信息写入actor还原物品

7.双击功能:用一个变量记录点击了几次,初始时是0,点击一次:如果该值为0,则设置为1,意为单击一次;如果该值为1,则设置为2,以为双击;等待0.5秒后,初始该值设为0;

 

扩展:

1.丢弃的物体能放置到地上,前方的地上去

2.鼠标放在物品上能在鼠标上显示物品信息

3.鼠标可以拖动物品:拖到场景中,丢弃到场景中;拖动到其他格子中,会放置到其他格子中;

 

功能:

拖拽物品

1.先做两个Scrollbox,在其中一个放小物件umg,重载小物件UMG的On Mouse Button Down函数,检测拖拽事件

UE4-创建一个背包系统_第1张图片

2.重载小物件UMG的OnDragDetected事件,拖动时生成小物件UMG

UE4-创建一个背包系统_第2张图片

3.在列表中重载OnDrop事件,物品拖动在列表时,将调用玩家蓝图中的增加到库存函数,把物品增加到库存中

UE4-创建一个背包系统_第3张图片

这样就可以把一个列表中的小物件拖动到另一个列表中

 

 

你可能感兴趣的:(UE4)