Notifications
Article
Odin Inspector 系列教程 --- Detailed Info Box Attribute
Updated 5 months ago
83
0
Odin Inspector 系列教程 --- Detailed Info Box Attribute
Detailed Info Box Attribute特性:
在Inspector面板中绘制一个信息面板,添加对应标题和详细信息描述,点击时可以显示出对应填写的详细信息

不同形式的消息框

[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在出现弹窗提示等。

[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 系列教程

海澜
低端打杂人员 - Programmer
18
Comments