/// <summary>
        /// 开始收集
        /// </summary>
        public static void Run(string saveFilePath, GameObject sceneGameObjects)
        {
            if (_isStarted)
            {
                return;
            }

            if (Path.HasExtension(saveFilePath) == false)
            {
                saveFilePath = $"{saveFilePath}.shadervariants";
            }
            if (Path.GetExtension(saveFilePath) != ".shadervariants")
            {
                throw new System.Exception("Shader variant file extension is invalid.");
            }
            EditorTools.CreateFileDirectory(saveFilePath);
            _saveFilePath = saveFilePath;

            // 聚焦到游戏窗口
            EditorTools.FocusUnityGameWindow();

            // 清空旧数据
            ClearCurrentShaderVariantCollection();

            // 收集着色器变种
            var materials = GetAllMaterials();

            CollectVariants(materials, sceneGameObjects);

            _isStarted = true;
            _elapsedTime.Reset();
            _elapsedTime.Start();

            UnityEngine.Debug.LogWarning("已经启动着色器变种收集工作,该工具只支持在编辑器下人工操作!");
        }