1. 程式人生 > >UE(虛幻)4 藍圖視覺化程式設計進階篇 03 滑鼠拾取案例(介面)

UE(虛幻)4 藍圖視覺化程式設計進階篇 03 滑鼠拾取案例(介面)

拾取的基本原理

在角色藍圖中建立一個 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