public static void      RemovePath(int i)
 {
     UnityInstalls.LazyInitialize();
     UnityInstalls.installPaths.RemoveAt(i);
     UnityInstalls.UpdateUnityInstalls();
     UnityInstalls.Save();
 }
        /// <summary>Returns the path of the Unity installation corresponding to the version. Returns null if none is available.</summary>
        /// <param name="unityVersion"></param>
        /// <returns></returns>
        public static string    GetUnityExecutable(string unityVersion)
        {
            UnityInstalls.LazyInitialize();

            string path;

            if (UnityInstalls.unityInstalls.TryGetValue(unityVersion, out path) == true)
            {
                return(Path.Combine(path, @"Editor\Unity.exe"));
            }
            return(null);
        }
        public static void      SetPath(int i, string path)
        {
            UnityInstalls.LazyInitialize();

            if (i >= 0 && i < UnityInstalls.installPaths.Count)
            {
                UnityInstalls.installPaths[i] = path;
            }

            UnityInstalls.UpdateUnityInstalls();
            UnityInstalls.Save();
        }
        public static void      AddPath(string path = null)
        {
            UnityInstalls.LazyInitialize();

            if (path == null)
            {
                if (UnityInstalls.installPaths.Count > 0)
                {
                    UnityInstalls.installPaths.Add(UnityInstalls.installPaths[UnityInstalls.installPaths.Count - 1]);
                }
                else
                {
                    UnityInstalls.installPaths.Add(string.Empty);
                }
                UnityInstalls.Save();
            }
            else if (UnityInstalls.installPaths.Contains(path) == false)
            {
                UnityInstalls.installPaths.Add(path);
                UnityInstalls.UpdateUnityInstalls();
                UnityInstalls.Save();
            }
        }