diff options
author | chai <chaifix@163.com> | 2020-10-23 13:08:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-23 13:08:43 +0800 |
commit | b82da95b5181ac8bbae38efb13e950d5e88a4caa (patch) | |
tree | 48a6f3269276484bbc7cfc95f0651f40a2176aa1 /Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs | |
parent | 917e9e0b320775634dc2e710f7deac74fd0822f0 (diff) |
*移动amplify shader editor到third party目录
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs')
-rw-r--r-- | Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs new file mode 100644 index 00000000..3a699c60 --- /dev/null +++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs @@ -0,0 +1,117 @@ +// Amplify Shader Editor - Visual Shader Editing Tool +// Copyright (c) Amplify Creations, Lda <info@amplify.pt> + +using UnityEditor; +using UnityEngine; +using System.Collections.Generic; + +namespace AmplifyShaderEditor +{ + public enum MessageSeverity + { + Normal, + Warning, + Error + } + public class GenericMessageData + { + public string message; + public MessageSeverity severity; + public bool console; + public GenericMessageData( string msg, MessageSeverity svrty, bool csle ) + { + message = msg; + severity = svrty; + console = csle; + } + } + + class GenericMessageUI + { + public delegate void OnMessageDisplay( string message, MessageSeverity severity, bool console ); + public event OnMessageDisplay OnMessageDisplayEvent; + + private const double MESSAGE_TIME = 2; + private double m_currentMessageStartTime; + private Queue<GenericMessageData> m_messageQueue; + private bool m_displayingMessage; + + public GenericMessageUI() + { + m_messageQueue = new Queue<GenericMessageData>(); + m_displayingMessage = false; + m_currentMessageStartTime = EditorApplication.timeSinceStartup; + } + + public void Destroy() + { + m_messageQueue.Clear(); + OnMessageDisplayEvent = null; + } + + public void AddToQueue( string message, MessageSeverity severity, bool console ) + { + m_messageQueue.Enqueue( new GenericMessageData( message, severity, console ) ); + } + + public void Log( string message ) + { + m_messageQueue.Enqueue( new GenericMessageData( message, MessageSeverity.Normal, true ) ); + Debug.Log( message ); + } + + public void LogError( string message ) + { + m_messageQueue.Enqueue( new GenericMessageData( message, MessageSeverity.Error, true ) ); + Debug.LogError( message ); + } + + public void LogWarning( string message ) + { + m_messageQueue.Enqueue( new GenericMessageData( message, MessageSeverity.Warning, true ) ); + Debug.LogWarning( message ); + } + + public void CheckForMessages() + { + if ( m_displayingMessage ) + { + double timeLeft = EditorApplication.timeSinceStartup - m_currentMessageStartTime; + if ( timeLeft > MESSAGE_TIME ) + { + m_displayingMessage = false; + } + } + + if ( !m_displayingMessage ) + { + if ( m_messageQueue.Count > 0 ) + { + m_displayingMessage = true; + GenericMessageData data = m_messageQueue.Dequeue(); + m_currentMessageStartTime = EditorApplication.timeSinceStartup; + + if ( OnMessageDisplayEvent != null ) + OnMessageDisplayEvent( data.message, data.severity, data.console ); + } + } + } + + public void CleanUpMessageStack() + { + m_displayingMessage = false; + m_messageQueue.Clear(); + } + + public void StartMessageCounter() + { + m_displayingMessage = true; + m_currentMessageStartTime = EditorApplication.timeSinceStartup; + } + + public bool DisplayingMessage + { + get { return ( m_displayingMessage || m_messageQueue.Count > 0 ); } + } + } +} |