前言:
之前期末要用UE4做個遊戲,老師只有教BP,所以自己看文件學了一下C++的使用方法。
編譯環境
開啟VS installer找到 Unreal Engine安裝程式,右側需勾選Unreal Engine安裝程式
產生腳本
給玩家用的擴充腳本可由:file >創建New Character class,選public若要某些資料可以由藍圖使用。
剛創建的檔案在 Games/Source/{projectName}/Public/ 下面
讓玩家繼承該ACharacter腳本:到玩家BP頁面,reparent bp選擇剛剛創的cpp檔。
結果就能在藍圖上叫出我們定義的類別方塊了。
實作:小於z值時變成Ragdoll死亡重生
在world setting下面有kill z設定 (表物件z高度低於此就會摧毀)
在AActor類別物件z軸低於Kill Z時候會呼叫FellOutOfWorld ,我們在該方法下使用自訂的方法。
HP歸零時先轉成RagDall骨架2秒後死亡回收物件:
設計重生方法:
重生方法:
並不是每個骨架都能使用ragdoll profile,這邊下載的SK hero骨架不適用ragdoll profile,所以先改回預設的UE4白人骨架Mannequin。
成功~
建立自己的函式庫
可以看官方的教學:面向蓝图师的C++ - Unreal Engine
自訂方法:取得範圍內玩家bp原本有個Get Actor of Class方法,我們想要創個進階的:取得範圍內玩家。 紅線表示出該方法定義於 GamePlay Statics類別。
在visual studio按下 ctl+, ,尋找該類別header。
找到並複製 GetActorOfClass定義至我們自己的header檔案中:
- BlueprintCallable 表可在bp系統中當作節點使用
- Category 分類
- WorldContext 直接指定物件為self。
- DeterminesOutputType="ActorClass" 表output value自動cast to ActorClass
- TSubclassOf<AActor> ActorClass 表輸入參數只接受AActor的子類別
- 遊戲引擎的struct常用F開頭。
就能出現在bp上了。
實際呼叫