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

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

Unity-腳本序列化錯(cuò)誤

2021-01-13 14:25 作者:unity_某某師_高錦錦  | 我要投稿

序列化是將數(shù)據(jù)結(jié)構(gòu)或?qū)ο鬆顟B(tài)轉(zhuǎn)換為 Unity 可存儲(chǔ)并在以后可重構(gòu)的格式的自動(dòng)過(guò)程。(請(qǐng)參閱有關(guān)腳本序列化的文檔以了解更多信息。)

在某些情況下,腳本序列化可能會(huì)導(dǎo)致錯(cuò)誤。下面列出了其中一些錯(cuò)誤的修復(fù)方法。

從構(gòu)造函數(shù)或字段初始化函數(shù)調(diào)用 Unity Scripting API

在?MonoBehaviour?構(gòu)造函數(shù)或字段初始化函數(shù)中調(diào)用諸如?GameObject.Find?之類的腳本 API 會(huì)觸發(fā)錯(cuò)誤:“Find is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call in in Awake or Start instead.”

解決此問題的方法是在?MonoBehaviour.Start?中而不是在構(gòu)造函數(shù)中調(diào)用腳本 API。

在反序列化期間調(diào)用 Unity Scripting API

從標(biāo)有?System.Serializable?的類的構(gòu)造函數(shù)中調(diào)用諸如?GameObject.Find?之類的腳本 API 會(huì)觸發(fā)錯(cuò)誤:“Find is not allowed to be called during serialization, call it from Awake or Start instead.”

要解決此問題,請(qǐng)編輯代碼,確保不會(huì)在任何序列化對(duì)象的構(gòu)造函數(shù)中調(diào)用任何腳本 API。

線程安全的 Unity Scripting API

大多數(shù)腳本 API 都受上面列出的限制所影響。只有部分 Unity Scripting API 免受影響,可從任何位置接受調(diào)用。它們?nèi)缦拢?/p>

  • Debug.Log

  • Mathf?函數(shù)

  • 簡(jiǎn)單的獨(dú)立結(jié)構(gòu);例如,像?Vector3?和?Quaternion?這樣的數(shù)學(xué)結(jié)構(gòu)

為了降低序列化過(guò)程中出錯(cuò)的風(fēng)險(xiǎn),只能調(diào)用不需要在 Unity 本身中獲取或設(shè)置數(shù)據(jù)的獨(dú)立 API 方法。僅在沒有其他選擇的情況下才調(diào)用它們。


Unity-腳本序列化錯(cuò)誤的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
嘉祥县| 三河市| 新津县| 柳江县| 永胜县| 沁源县| 三原县| 贵南县| 天柱县| 通州市| 赤水市| 合肥市| 湄潭县| 汶川县| 宁城县| 龙海市| 台江县| 拉孜县| 武安市| 鲁山县| 垫江县| 绥芬河市| 体育| 定结县| 讷河市| 任丘市| 荥经县| 柘城县| 永和县| 万安县| 洪洞县| 东阳市| 刚察县| 资兴市| 呼伦贝尔市| 蒙自县| 修武县| 嘉义县| 景德镇市| 吐鲁番市| 大邑县|