美文网首页
Odin Inspector 系列教程 --- Detailed

Odin Inspector 系列教程 --- Detailed

作者: 忆中异 | 来源:发表于2021-11-24 15:35 被阅读0次

    Detailed Info Box Attribute特性:
    在Inspector面板中绘制一个信息面板,添加对应标题和详细信息描述,点击时可以显示出对应填写的详细信息

    image
    不同形式的消息框
    image
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True,所以此消息框可见", InfoMessageType = InfoMessageType.None)]
        public string NoneMessage = "无";
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True,所以此消息框可见", InfoMessageType = InfoMessageType.Info)]
        public string InfoMessage = "无";
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True,所以此消息框可见", InfoMessageType = InfoMessageType.Warning)]
        public string WarningMessage = "无";
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True,所以此消息框可见", InfoMessageType = InfoMessageType.Error)]
        public string ErrorMessage = "无";
    
    
    还可以通过一个方法的返回值(bool)来控制消息框是否显示,例如在这个函数中判断此字段是否为null,如果为null在出现弹窗提示等。
    image
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True。" +
            "所以此消息框可见.还可以通过一个方法的返回值(bool)来控制消息框是否显示," +
            "例如在这个函数中判断此字段是否为null,如果为null在出现弹窗提示等。", 
            InfoMessageType = InfoMessageType.None, VisibleIf = "VisibleFunction")]
        public string haveVisibleIfMessage = "";
    
        [DetailedInfoBox("简介消息", "还可以通过一个方法的返回值(bool)来控制消息框是否显示,例如在这个函数中判断此字段是否为null,如果为null在出现弹窗提示等。", InfoMessageType = InfoMessageType.None, VisibleIf = "NoVisibleFunction")]
        public string noVisibleIfMessage = "";
    
        public  bool VisibleFunction()
        {
            /*
             * 根据情况下选择返回true或者false,让对应的消息框显示或者不显示
             */
            return true;
        }
    
        public bool NoVisibleFunction()
        {
            return string.IsNullOrEmpty(noVisibleIfMessage);
        }
    
    
    完整示例代码
    using Sirenix.OdinInspector;
    using UnityEngine;
    
    public class DetailedInfoBoxExample : MonoBehaviour
    {
        [DetailedInfoBox("详情请点击...",
            "菜鸟海澜:下面是详细信息,这个欢迎大家留言指正,对应的工程已经上传Github," +
            "地址为:https://github.com/su9257/Odin-Inspector-Chinese-Tutorial")]
        public string message = "无";
    
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True,所以此消息框可见", InfoMessageType = InfoMessageType.None)]
        public string NoneMessage = "无";
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True,所以此消息框可见", InfoMessageType = InfoMessageType.Info)]
        public string InfoMessage = "无";
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True,所以此消息框可见", InfoMessageType = InfoMessageType.Warning)]
        public string WarningMessage = "无";
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True,所以此消息框可见", InfoMessageType = InfoMessageType.Error)]
        public string ErrorMessage = "无";
    
        [DetailedInfoBox("简介消息", "默认情况下VisibleIf为True。" +
            "所以此消息框可见.还可以通过一个方法的返回值(bool)来控制消息框是否显示," +
            "例如在这个函数中判断此字段是否为null,如果为null在出现弹窗提示等。", 
            InfoMessageType = InfoMessageType.None, VisibleIf = "VisibleFunction")]
        public string haveVisibleIfMessage = "";
    
        [DetailedInfoBox("简介消息", "还可以通过一个方法的返回值(bool)来控制消息框是否显示,例如在这个函数中判断此字段是否为null,如果为null在出现弹窗提示等。", InfoMessageType = InfoMessageType.None, VisibleIf = "NoVisibleFunction")]
        public string noVisibleIfMessage = "";
    
        public  bool VisibleFunction()
        {
            /*
             * 根据情况下选择返回true或者false,让对应的消息框显示或者不显示
             */
            return true;
        }
    
        public bool NoVisibleFunction()
        {
            return string.IsNullOrEmpty(noVisibleIfMessage);
        }
    }
    
    

    更多教程内容详见:Unity 编辑器扩展工具 --- Odin Inspector 系列教程

    链接:https://www.jianshu.com/p/ee83f0c151e9

    相关文章

      网友评论

          本文标题:Odin Inspector 系列教程 --- Detailed

          本文链接:https://www.haomeiwen.com/subject/clqbtrtx.html