原理
- 核心是使用
LineTraceByChannel
函数来检测鼠标点击的物体
LineTraceByChannel
-
蓝图中的LineTraceByChannel
-
节点含义
沿着给定的线段执行碰撞跟踪,并且返回第一个命中的物体,详细的函数和节点解释见LineTraceByChannel官方解释
-
流程
-
定义创建蓝图接口
BPI_Pickup
,定义拾取方法Pickup
.-
鼠标右键点击空白处,依次选择创建接口
-
添加方法
Pickup
-
实现此接口的物体均可被拾取
-
-
定义可拾取物体基类
CanPickupActorBase
- 创建一个蓝图,类型选择
Actor
- 此蓝图实现
BPI_Pickup
接口,并实现自己的拾取逻辑
双击打开蓝图,然后
- 创建一个蓝图,类型选择
-
在人物蓝图中添加鼠标左键点击逻辑
为了方便测试,添加了显示鼠标的功能
-
然后添加
CanPickupActorBase
的子类,放置到游戏中即可只要是`CanPickupActorBase`的子类,无需添加任何操作,即可自动拥有拾取逻辑