using System; using UnityEditor; namespace NBShaderEditor { public class HelpBoxItem : ShaderGUIItem { private readonly MessageType _messageType; private readonly Func _messageProvider; private readonly Func _isVisible; public HelpBoxItem( ShaderGUIRootItem rootItem, ShaderGUIItem parentItem, Func messageProvider, MessageType messageType = MessageType.Info, Func isVisible = null) : base(rootItem, parentItem) { _messageProvider = messageProvider ?? (() => string.Empty); _messageType = messageType; _isVisible = isVisible; } public override void OnGUI() { if (_isVisible != null && !_isVisible()) { return; } using (ParentControlDisabledScope()) { DrawLayoutHelpBox(_messageProvider(), _messageType); } } } }