Added adjustable fade speed and raycast block handling.
Added adjustable fade speed and raycast block handling.

 Binary files a/Assets/Plugins/KerbalEngineer.Unity.dll and b/Assets/Plugins/KerbalEngineer.Unity.dll differ
--- a/Assets/Prefabs/flight-menu.prefab
+++ b/Assets/Prefabs/flight-menu.prefab
@@ -258,6 +258,7 @@
   m_Script: {fileID: 2019631361, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_FadeDuration: .200000003
 --- !u!114 &11423044
 MonoBehaviour:
   m_ObjectHideFlags: 1

--- a/KerbalEngineer.Unity/CanvasGroupFader.cs
+++ b/KerbalEngineer.Unity/CanvasGroupFader.cs
@@ -7,6 +7,9 @@
     [RequireComponent(typeof(CanvasGroup))]
     public class CanvasGroupFader : MonoBehaviour
     {
+        [SerializeField]
+        private float m_FadeDuration = 0.2f;
+
         private CanvasGroup m_CanvasGroup;
         private IEnumerator m_FadeCoroutine;
 
@@ -15,18 +18,26 @@
         /// </summary>
         public void FadeTo(float alpha, Action callback = null)
         {
-            if (m_CanvasGroup == null || gameObject.activeInHierarchy == false)
+            FadeTo(alpha, false, callback);
+        }
+
+        /// <summary>
+        ///     Fades the canvas group to a specified alpha using the supplied blocking state during fade with optional callback.
+        /// </summary>
+        public void FadeTo(float alpha, bool blockRaycasts, Action callback = null)
+        {
+            if (m_CanvasGroup == null)
             {
                 return;
             }
 
-            Fade(m_CanvasGroup.alpha, alpha, callback);
+            Fade(m_CanvasGroup.alpha, alpha, false, callback);
         }
 
         /// <summary>
         ///     Sets the alpha value of the canvas group.
         /// </summary>
-        public void SetAlpha(float alpha)
+        public void SetAlpha(float alpha, bool blockRaycasts = false)
         {
             if (m_CanvasGroup == null)
             {
@@ -35,7 +46,7 @@
 
             alpha = Mathf.Clamp01(alpha);
             m_CanvasGroup.alpha = alpha;
-            m_CanvasGroup.interactable = !(alpha < 1.0f);
+            m_CanvasGroup.blocksRaycasts = blockRaycasts || !(alpha < 1.0f);
         }
 
         protected virtual void Awake()
@@ -47,28 +58,28 @@
         /// <summary>
         ///     Starts a fade from one alpha value to another with callback.
         /// </summary>
-        private void Fade(float from, float to, Action callback)
+        private void Fade(float from, float to, bool blockRaycasts, Action callback)
         {
             if (m_FadeCoroutine != null)
             {
                 StopCoroutine(m_FadeCoroutine);
             }
 
-            m_FadeCoroutine = FadeCoroutine(from, to, callback);
+            m_FadeCoroutine = FadeCoroutine(from, to, blockRaycasts, callback);
             StartCoroutine(m_FadeCoroutine);
         }
 
         /// <summary>
         ///     Coroutine that handles the fading.
         /// </summary>
-        private IEnumerator FadeCoroutine(float from, float to, Action callback)
+        private IEnumerator FadeCoroutine(float from, float to, bool blockRaycasts, Action callback)
         {
             float progress = 0.0f;
 
             while (progress <= 1.0f)
             {
-                progress += Time.deltaTime;
-                SetAlpha(Mathf.Lerp(from, to, progress));
+                progress += Time.deltaTime / m_FadeDuration;
+                SetAlpha(Mathf.Lerp(from, to, progress), blockRaycasts);
                 yield return null;
             }
 

 Binary files a/Output/KerbalEngineer/KerbalEngineer and b/Output/KerbalEngineer/KerbalEngineer differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.Unity.dll and b/Output/KerbalEngineer/KerbalEngineer.Unity.dll differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ
 Binary files a/Output/KerbalEngineer/prefabs and b/Output/KerbalEngineer/prefabs differ
--- a/Output/KerbalEngineer/prefabs.manifest
+++ b/Output/KerbalEngineer/prefabs.manifest
@@ -1,12 +1,12 @@
 ManifestFileVersion: 0
-CRC: 3865026138
+CRC: 1765835818
 Hashes:
   AssetFileHash:
     serializedVersion: 2
-    Hash: a1b8dff36f3e0d270b7e54a4bbad1967
+    Hash: 0189854def44ed20b086b6c4266b8c5d
   TypeTreeHash:
     serializedVersion: 2
-    Hash: a41c1d9eb0c122e1a03e76000577e275
+    Hash: ca6c59ab938e037b0e2b7931aee3e292
 HashAppended: 0
 ClassTypes:
 - Class: 1