ue4.17
特殊說明:建立bp時,如果bp上隨手綁乙個cube,那麼生成到場景的actor只執行構造不執行beginplay,原因未知
atplayerpawn是c++類
直接動態建立actor
uworld* const world = getworld();
fvector v = fvector(0, 0, 0);
frotator r = frotator(0, 0, 0);
if (world)
建立乙個名為tplayerpawnbp的藍圖,繼承atplayerpawn
動態建立方法,3方法基本類似,隨便記錄下
1 可在執行時使用
fstringassetreference asset = "blueprint'/game/bp/tplayerpawnbp.tplayerpawnbp'";
uobject* itemobj = asset.resolveobject();
ublueprint* gen = cast(itemobj);
if (gen != null)
2 可在執行時使用
uobject* loadobj = staticloadobject(ublueprint::staticclass(), null, text("blueprint'/game/bp/tplayerpawnbp.tplayerpawnbp'"));
if (loadobj != nullptr)
3 先儲存藍圖類,然後執行時建立
.h中定義
uproperty(editanywhere, blueprintreadwrite, category = "n")
tsubclassofdoorbpclass;
.cpp構造中
static constructorhelpers::fclassfinderdoorbpclassfinder(text("/game/bp/tplayerpawnbp"));
if (doorbpclassfinder.class != nullptr)
.cpp beginplay中
uworld* const world = getworld();
if (world)
4 執行時建立,大體思路都一樣,只要找到bp類就行,注意這個路徑有個_c
tsubclassofts = loadclass(null,text("blueprint'/game/bp/tplayerpawnbp.tplayerpawnbp_c'"));
getworld()->spawnactor(ts);
ue4 動態載入資源
動態載入非藍圖資源 如 聲音等使用loadobject 資源型別 nullptr,text 資源路徑引用 載入藍圖資源 獲得藍圖類 loadclass 藍圖的型別 nullptr,text 資源路徑引用 c 這裡需要注意就是資源的路徑需要額外加上 c 例如uclass result1 loadcla...
UE4之Delegate 動態單播
定義 define func concat va args 定義乙個動態單播,uht會根據body macro combine生成乙個file id line delegate巨集,這個函式留到後面說。先看func declare dynamic delegate 巨集定義 define func ...
UE4 動態陣列 TArray容器
為什麼使用ue4提供的容器類?如果你用過c 的stl庫,你就知道stl提供了各種各樣的容器 資料結構,使得你對處理很多資料的時候非常快捷高效。ue4同樣也提供了類似的庫,庫裡面的型別是以t開頭的,使用ue4提供的容器庫可以更好地實現跨平台。所以在ue4進行開發的時候我們很少去使用stl容器,更多時候...