前因
原先在專案中用了預設的ASC(UAbilitySystemComponent),後面因為新的需求導致需要改為自己的ASC。結果改了之後,發現在Pre-Init(建構函式)時,CreateDefaultSubobject的返回值是nullptr。
過程
於是去論壇求助:
論壇的人的回答是,你修改了ASC的類,導致前一個ASC反序列化到當前ASC上,從而導致空 ASC,並提供瞭解決方案:即建立一個新的藍圖,如果是Character的話,就重新建立一個新的BP_Character並重新做修改。(這也太麻煩了
方案
論壇的人方案也不無參考之處,它指出了問題所在,意味著是因為你的ASC的類反序列化失敗導致的。所以我們可以再次在C++中加入一個新的ASC,然後把之前的ASC邏輯遷移到新的ASC_NEW中即可。
(雖然也是挺麻煩,但是改動量比之前的那個要少一點