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函数,检测拖拽事件

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

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

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

 

 

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
UE4中进行串口数据的读取,可以通过使用C++编写自定义的插件来实现。 首先,需要创建一个C++类继承自AActor类,并在.h文件中包含以下头文件: ```cpp #include "SerialPort.h" #include "MyActor.generated.h" ``` 接着,在.h文件中声明 SerialPort 类的实例: ```cpp USerialPort* Serial; ``` 在.cpp文件的构造函数中,初始化 SerialPort 实例: ```cpp AMyActor::AMyActor() { Serial = NewObject<USerialPort>(); Serial->Initialize("COM1", 9600); // 根据需要设置串口名称和波特率 } ``` 接下来,我们可以在其他函数中使用 SerialPort 类的方法来读取串口数据。例如,在 Tick 函数中更新串口数据: ```cpp void AMyActor::Tick(float DeltaTime) { Super::Tick(DeltaTime); FString Data = Serial->ReadData(); if (Data.Len() > 0) { // 处理接收到的数据 UE_LOG(LogTemp, Warning, TEXT("Received data: %s"), *Data); } } ``` 在上面的例子中,我们使用了 ReadData 方法来读取串口接收到的数据,并在控制台输出。 需要注意的是,为了编译通过,还需在项目的 Build.cs 文件中添加对 SerialPort 模块的引用: ```cpp PublicDependencyModuleNames.AddRange(new string[] { "SerialPort" }); ``` 最后,可以在 UE4 中的蓝图或其他 C++ 类中创建该自定义的 Actor 类,并放置到场景中。然后,运行游戏时,该 Actor 类将会读取串口数据并进行相应的处理。 这就是在UE4中进行串口数据的读取的基本步骤。通过自定义插件,我们可以方便地实现与外部设备的通信,并在游戏中进行数据的交互。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值