public static void UpdateScriptingDefineSymbols() { foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) { try { foreach (var symbolReq in s_symbolReqList) { symbolReq.FindRequiredTypesInAssembly(assembly); } } catch (ReflectionTypeLoadException e) { Debug.LogWarning(e); Debug.LogWarning("load assembly " + assembly.FullName + " fail"); } catch (Exception e) { Debug.LogError(e); } } var defineSymbols = GetDefineSymbols(); var defineSymbolsChanged = false; foreach (var symbolReq in s_symbolReqList) { if (symbolReq.Validate()) { if (!defineSymbols.Contains(symbolReq.symbol)) { defineSymbols.Add(symbolReq.symbol); defineSymbolsChanged = true; } } else { if (defineSymbols.RemoveAll((symbol) => symbol == symbolReq.symbol) > 0) { defineSymbolsChanged = true; } } } if (defineSymbolsChanged) { SetDefineSymbols(defineSymbols); } SymbolRequirement.ResetFoundTypes(); }
private static void DoUpdateScriptingDefineSymbols() { // some symbolRequirement depends on installed packages (only works when UNITY_2018_1_OR_NEWER) Vive.VIUSettingsEditor.PackageManagerHelper.PreparePackageList(); if (Vive.VIUSettingsEditor.PackageManagerHelper.isPreparingList) { return; } foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) { try { foreach (var symbolReq in s_symbolReqList) { symbolReq.FindRequiredTypesInAssembly(assembly); } } catch (ReflectionTypeLoadException e) { Debug.LogWarning(e); Debug.LogWarning("load assembly " + assembly.FullName + " fail"); } catch (Exception e) { Debug.LogError(e); } } var defineSymbols = GetDefineSymbols(); var defineSymbolsChanged = false; foreach (var symbolReq in s_symbolReqList) { if (symbolReq.Validate()) { if (!defineSymbols.Contains(symbolReq.symbol)) { defineSymbols.Add(symbolReq.symbol); defineSymbolsChanged = true; } } else { if (defineSymbols.RemoveAll((symbol) => symbol == symbolReq.symbol) > 0) { defineSymbolsChanged = true; } } } if (defineSymbolsChanged) { SetDefineSymbols(defineSymbols); } SymbolRequirement.ResetFoundTypes(); s_isUpdatingScriptingDefineSymbols = false; EditorApplication.update -= DoUpdateScriptingDefineSymbols; }