无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

UE探索隨筆:記錄一個關(guān)于藍(lán)圖繼承C++類出現(xiàn)的詭異的BUG

2023-03-03 09:47 作者:濮之武  | 我要投稿

原文地址:https://zhuanlan.zhihu.com/p/609580942

前言

UE初學(xué)者,最近在研究UE的時候發(fā)現(xiàn)了一個關(guān)于初始化的詭異的BUG,在Debug的過程中發(fā)現(xiàn)挺少文章記錄這一點(diǎn)的,就此描述、記錄、復(fù)盤一下這個BUG。

虛幻版本:4.27?

應(yīng)用插件:GAS

問題描述

這里有一個角色C++類,并派生一個藍(lán)圖類。我在C++類中聲明一個組件,并在構(gòu)造器中完成了初始化?,F(xiàn)在我在關(guān)卡中生成一個藍(lán)圖類的游戲?qū)ο螅幃惖氖虑榘l(fā)生了,該組件竟為空!或者再具體說,是在構(gòu)造函數(shù)里組件有值,而繼續(xù)執(zhí)行的過程中組件便指向空!

聲明組件
非常常規(guī)的創(chuàng)建操作

Debug過程

在構(gòu)造函數(shù)結(jié)束時打斷點(diǎn),可以看見組件的確成功完成了創(chuàng)建且此時此刻組件是有值的。

但是在BeginPlay()打斷點(diǎn),可以看見組件指向空。

過后我在構(gòu)造到BeginPlay()之間可能執(zhí)行到的函數(shù)(如OnConstruction()等)均進(jìn)行調(diào)試查看,結(jié)果便是在這些函數(shù)中組件也均指向空。

最終耽誤了很長時間,想到這個組件是我過后在C++類中添加的,雖然成功編譯完后藍(lán)圖里的確可以看到組件已經(jīng)添加進(jìn)去,但是會不會中間存在一些問題,因?yàn)橐郧耙矔龅紺++代碼更新后藍(lán)圖出現(xiàn)問題的情況,這時一般需要Reparent(隨便換一個父類,再重新調(diào)回去,或者直接創(chuàng)建一個新的藍(lán)圖類)。經(jīng)過嘗試,的確這又是一個需要Reparent的問題,Reparent后一切正常......

雖然藍(lán)圖已經(jīng)顯示加載,但組件仍是有問題的

總結(jié)

如果在C++調(diào)整代碼后出現(xiàn)Bug,在確定代碼邏輯無誤后,可以考慮Reparent一下藍(lán)圖,沒準(zhǔn)問題會離奇地解決。另外,如果有大佬知道這個問題的根本原因,或?qū)eparent問題有更深入的認(rèn)識的,十分希望賜教?。ó吘姑看卧谒{(lán)圖配好的數(shù)據(jù)都會被刷掉是很麻煩的)

參考:forums.unrealengine.com(Debug時唯一的有用的信息)

UE探索隨筆:記錄一個關(guān)于藍(lán)圖繼承C++類出現(xiàn)的詭異的BUG的評論 (共 條)

分享到微博請遵守國家法律
枣阳市| 东丽区| 张家界市| 清河县| 浦江县| 砚山县| 北辰区| 永安市| 陕西省| 五大连池市| 依兰县| 沙河市| 北流市| 南华县| 南投县| 奎屯市| 申扎县| 和静县| 凭祥市| 莎车县| 长乐市| 巫山县| 靖西县| 阜宁县| 合川市| 安福县| 南岸区| 泰顺县| 萝北县| 巴彦淖尔市| 钟山县| 阳曲县| 台前县| 阜平县| 简阳市| 丹凤县| 九江市| 南汇区| 苍溪县| 温泉县| 肇源县|