最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

【UE5】射線檢測(cè)Channel靜態(tài)變量初始化,一招搞崩你的程序

2023-02-03 12:23 作者:天空游蕩的魚  | 我要投稿

事情是這樣的....

開發(fā)的程序一直都能穩(wěn)定的打包,運(yùn)行。直到有一天,詭異的事情發(fā)生了,無論是Android還是Win包,啟動(dòng)程序立即閃退。UE沒有生成任何文件,沒有任何log,就好像不曾點(diǎn)擊過啟動(dòng)圖標(biāo)一樣。但在PIE模式下,一切正常。

一切都發(fā)生得太突然,太懵逼,突然這么來一下,還真是摸不著頭腦。后面靜下心來,從0開始。無論什么問題,不還得從哪些解決問題的方法入手嗎,線索少一點(diǎn),并不代表不能開展工作了。

于是

第一步:還原現(xiàn)場(chǎng),找到發(fā)生前和發(fā)生后項(xiàng)目中的差異。將時(shí)間回退,找出問題的時(shí)間節(jié)點(diǎn),雖然這是一個(gè)笨方法,但不可否認(rèn)他很有效。經(jīng)過一番折騰,終于找到那些文件可能出現(xiàn)問題。(這時(shí)候版本管理工具就凸顯出特別重要的作用)

第二步:分析嫌疑人。既然找到嫌疑人,那肯定憑借多年的辦案經(jīng)驗(yàn),按個(gè)分析。寫了這么些年代碼,錯(cuò)誤就擺在面前,還有版本管理工具輔助,找出問題不是分分鐘的事嗎?所有代碼都分析了一遍,沒得到結(jié)論,此時(shí)開始懷疑自己代碼的基礎(chǔ)功底了。

第三步:從0開始分析,既然啟動(dòng)就閃退,UE都還沒來得及工作。那會(huì)不會(huì)跟靜態(tài)變量初始化,靜態(tài)代碼塊等相關(guān)?所以開始著手仔細(xì)看靜態(tài)代碼相關(guān),同樣毫無收獲,難道這個(gè)方向也錯(cuò)了嗎?

第四步:進(jìn)一步縮小嫌疑范圍。鎖定最終代碼文件。

結(jié)果:

由于調(diào)用UKismetSystemLibrary::LineTraceMultiForObjects進(jìn)行射線檢查需要用到TArray<TEnumAsByte<EObjectTypeQuery> >作為查詢數(shù)組,在我們的功能里面,這個(gè)數(shù)組又是固定的,就想著初始化一次就好。不用每次都新建,所以將該對(duì)象創(chuàng)建為靜態(tài)變量。代碼如下:

該對(duì)象為靜態(tài)對(duì)象,在程序啟動(dòng)時(shí)就會(huì)初始化。但進(jìn)一步到UEngineTypes::ConvertToObjectType里面去看,并非全為靜態(tài),需要通過CDO訪問配置文件,從而才能得到對(duì)象。此時(shí),UE還未初始化好,CDO UClass也不存在,直接閃退了。

按這個(gè)理,所有用到UClass的東西設(shè)置為靜態(tài)變量并初始化,應(yīng)該都會(huì)出現(xiàn)該問題,大家可以試試去。


【UE5】射線檢測(cè)Channel靜態(tài)變量初始化,一招搞崩你的程序的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
天全县| 彰化县| 延吉市| 梧州市| 莱州市| 平凉市| 和顺县| 收藏| 阿拉尔市| 桑植县| 新昌县| 东乌珠穆沁旗| 台中县| 迁西县| 平罗县| 淮安市| 喀喇沁旗| 冀州市| 余姚市| 太保市| 玉溪市| 高台县| 和林格尔县| 东明县| 北宁市| 徐州市| 北京市| 外汇| 维西| 乐至县| 仪陇县| 象州县| 河津市| 新余市| 花莲县| 茌平县| 通渭县| 南康市| 札达县| 新兴县| 镇沅|