/// <summary> /// 开始收集 /// </summary> public static void Run(string saveFilePath) { 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(); // 创建临时测试场景 CreateTemperScene(); // 收集着色器变种 var materials = GetAllMaterials(); CollectVariants(materials); _isStarted = true; _elapsedTime.Reset(); _elapsedTime.Start(); UnityEngine.Debug.LogWarning("已经启动着色器变种收集工作,该工具只支持在编辑器下人工操作!"); }