"(UE4Editor.exe中)處有未經處理的異常:0xC0000005:讀取位置0x0000000000000000時發生訪問衝突"報錯情況+解決方法+原因分析

七星易發表於2024-04-14

報錯情況:使用ue4.27 Slate編寫Widget時想透過獲取Worl(透過本地PlayerController獲取)來實現“設定定時任務為在音樂結束後自動觸發函式”的功能

ps:定時執行函式程式碼

解決方法:

使用GWorld替換掉透過第0號PlayerController獲取世界

原因分析:(由於本人校驗較少,暫做以下估計)在進行地圖切換的時候,PlayerController因在GWorld之後初始化,導致透過PlayerController獲取GWorld時會因初始化順序問題導致野指標訪問問題。而自帶的GWorld屬性的定義為extern ENGINE_API class UWorldProxy GWorld;,extern將導致他會預先被宣告,以便於後續處理是否可使用(nullptr)時發揮作用,阻止非法資料訪問的問題。

相關文章