UE(虚幻)4 蓝图可视化编程进阶篇 03 鼠标拾取案例(接口)

来源:互联网 发布:淘宝联盟高佣活动入口 编辑:程序博客网 时间:2024/06/01 15:23

拾取的基本原理

在角色蓝图中创建一个 LineTraceByChannel 设置起点和终点,然后再DrawDebugType 选择ForDuration 一段时间消失,然后绘制Out Hit BreakHitResult 然后绘制HitActor --GetDisplayName stringPrint 然后连接 按下键盘F 就会打印被挡住的物体的名称。然后再HitActor设置AddActorWorldOffset 吧Z轴设置为上升一百个单位,就实现了拾取五物体

鼠标位置转化到世界空间

首先输入LeftMouseButton  连接在LineTraceByChannel  然后 GetPlayerController  然后接着调用方法 ConeventMouseLocationWorldSpace(把鼠标的屏幕位置转化为3D位置) 其中WorldLocation 是转化后的在世界空间中的位置 。WorldDirection 鼠标指向的方向  Return Value 转化是否成功。 然后连接 起始点Start  然后 起点+一个Vector  ,然后方向*float长度 ,新建一个 vector+vector 刚才那个Vector 和 长度 ,然后连接 End 终点。 未完待续。。明天接着更新。。


鼠标的显示与隐藏。

新建的一个第三人称控制器蓝图 点击运行的时候鼠标不显示,然后现在有一个办法能让鼠标显示和隐藏  在角色类中 绘制蓝图,Tab键  绘制一个分支语句 点击鼠标左键和B false的时候连接   (然后连接 get Player Controller  然后接着绘制  (GetShowMouseCursor 为判断条件) SetShowMouseCursor 为 True)( 然后True的时候连接 SetShowMouseCursor 设置为FALSE)。然后就能实现 鼠标的隐藏和显示 。、

输入模式

鼠标显示后仍然可以控制视角,可以调整鼠标的聚焦模式,这时候可以创建一个UI组件 让鼠标聚焦到新的UI界面上 鼠标就会失去对游戏的控制右键单击UserInterface---Widget Blueprint 然后重新命名为W_InGame,随便添加几个 Button  。新建好这个Ui以后可以应用到游戏当中 ,在角色类中创建UI 点击右键CreatWidget, 然后选择 要创建的哪一个界面 选择刚刚创建的W_InGame 。创建以后需要把它显示在场景当中,需要在 Return Value 绘制Add to Viewport  然后用Event BeginPlay连接 Create Widget ,怎么聚焦到UI上面呢,这时候需要添加一个Variable  然后重新命名为InGame Widget  类型就设置为刚才的W_InGame ,然后使用InGameWidget Set方法 这时候的 Create W_InGame Widget 中的 return Value 。连接设置 InGameWidget , 然后使用InGameWidget 的Get  ,在空白处点击鼠标右键 InputModeGameandUI (改变当前输入的一个模式  有三种 UIOnly 和 Game Only 和GameAdnUI )  然后 连接在set Show Mouse Cursor 为True的节点上 ,然后 获取当前角色GetPlayerController  ,连接 Return value 到SetInPutModeGameandUIOnly ,,然后 再创建一个SetInputModeGameOnly 连接在 ShowMouseController 为false的节点上  然后连接 Target到GetPlayerController  然后 Get出出来InGameWidget 接着绘制在 SetInputModeGameandUI 后面 SetVisiblity 设置 设置为Visibity  然后再上门的 SetInputModeGameOnly设置为 Hidden   。。。。接着在  Event BeginPlay 后面的Set  InGameWidget 的时候设置 SetVisibility 为Hidden  上门的线别忘了连接在 AddtoViewport  开始的时候让UI隐藏  接着 选中场景中的角色 在Pawn 中设置为Player0

阅读全文
1 0
原创粉丝点击