Odin Inspector 系列教程 --- Serialization Debugger 使用

Odin包含一個(gè)Serialization Debugger工具,用于調(diào)試查看對(duì)應(yīng)的序列化信息.
如果在Inspector中的字段等序列化信息出現(xiàn)丟失或者不可見(jiàn)等問(wèn)題,可以使用Serialization Debugger進(jìn)行快速查看并定位問(wèn)題。
調(diào)試器將顯示正在序列化任何給定類型的成員,以及它們是否被Unity,Odin或兩者序列化。它還提供成員序列化方式的介紹信息。

打開(kāi)Serialization Debugger工具有兩種方式

  • Tools/Odin Inspector/Serialization Debugger
  • 右鍵點(diǎn)擊已經(jīng)成為組件的腳本,選擇Debug Serialization

在Serialization Debugger面板中會(huì)查看對(duì)應(yīng)的字段的序列化形式,是以O(shè)din序列化還是Unity自帶的序列化,點(diǎn)擊對(duì)應(yīng)的字段在下方也會(huì)也有相對(duì)應(yīng)的提示。

而且腳本列表和搜索框,可以快速定位需要查看的腳本序列化

對(duì)應(yīng)示例腳本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Sirenix.OdinInspector;
using Sirenix.Serialization;
using System;

public class SerializationDebugger_ExampleOne : MonoBehaviour
{

    public string UnityString = "Unity_菜鳥(niǎo)海瀾";
    public List<string> UnityStringList = new List<string>();

    [NonSerialized][OdinSerialize]
    public string OdinStringInvalid= "錯(cuò)誤序列化";

    public TempUnitySerializationData tempUnitySerializationData = new TempUnitySerializationData();
    public TempOdinSerializationData tempOdinSerializationData = new TempOdinSerializationData();

    public List<TempUnitySerializationData> UnityList = new List<TempUnitySerializationData>();

    public Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();

    void Start()
    {

    }

}
[Serializable]
public class TempUnitySerializationData
{
    public string UnityString = "菜鳥(niǎo)海瀾";

}


public class TempOdinSerializationData
{
    public string UnityString = "菜鳥(niǎo)海瀾";
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Sirenix.OdinInspector;
using Sirenix.Serialization;
using System;

public class SerializationDebugger_ExampleTwo : SerializedMonoBehaviour
{
    public string UnityString = "Unity_菜鳥(niǎo)海瀾";

    [OdinSerialize]
    public string OdinAndUnityString = "OdinAndUnity_菜鳥(niǎo)海瀾";
    [OdinSerialize][NonSerialized]
    public string OdinString = "Odin_菜鳥(niǎo)海瀾";

    public List<TempOdinSerializationData> OdinList = new List<TempOdinSerializationData>();

    [SerializeField]
    public TempUnitySerializationData tempUnitySerializationData = new TempUnitySerializationData();

    public TempOdinSerializationData tempOdinSerializationData = new TempOdinSerializationData();

    public Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
    void Start()
    {

    }
}


更多教程內(nèi)容詳見(jiàn):革命性Unity 編輯器擴(kuò)展工具 --- Odin Inspector 系列教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容