public static void CompileAllCsPrograms(bool forceCompile = false, bool editorBuild = true) { UdonSharpProgramAsset[] programs = GetAllUdonSharpPrograms(); if (!forceCompile) { UdonSharpEditorCache cache = UdonSharpEditorCache.Instance; bool needsCompile = false; foreach (UdonSharpProgramAsset programAsset in programs) { if (cache.IsSourceFileDirty(programAsset)) { needsCompile = true; break; } } if (!needsCompile) { return; } } UdonSharpCompiler compiler = new UdonSharpCompiler(programs, editorBuild); compiler.Compile(); }
static void HandleScriptModifications(List <MonoScript> scripts) { string[] udonSharpDataAssets = AssetDatabase.FindAssets($"t:{typeof(UdonSharpProgramAsset).Name}"); List <UdonSharpProgramAsset> udonSharpPrograms = new List <UdonSharpProgramAsset>(); foreach (string dataGuid in udonSharpDataAssets) { udonSharpPrograms.Add(AssetDatabase.LoadAssetAtPath <UdonSharpProgramAsset>(AssetDatabase.GUIDToAssetPath(dataGuid))); } HashSet <UdonSharpProgramAsset> assetsToUpdate = new HashSet <UdonSharpProgramAsset>(); foreach (MonoScript script in scripts) { foreach (UdonSharpProgramAsset programAsset in udonSharpPrograms) { if (programAsset.sourceCsScript == script) { assetsToUpdate.Add(programAsset); } } } if (assetsToUpdate.Count > 0) { UdonSharpCompiler compiler = new UdonSharpCompiler(assetsToUpdate.ToArray()); compiler.Compile(); } }
static void HandleScriptModifications() { UdonSharpSettings settings = UdonSharpSettings.GetSettings(); if (settings != null) { if (!settings.autoCompileOnModify) { modifiedScripts.Clear(); return; } if (settings.waitForFocus && !UnityEditorInternal.InternalEditorUtility.isApplicationActive) { return; } } if (modifiedScripts.Count == 0) { return; } UdonSharpProgramAsset[] udonSharpPrograms = UdonSharpProgramAsset.GetAllUdonSharpPrograms(); HashSet <UdonSharpProgramAsset> assetsToUpdate = new HashSet <UdonSharpProgramAsset>(); foreach (MonoScript script in modifiedScripts) { foreach (UdonSharpProgramAsset programAsset in udonSharpPrograms) { if (programAsset.sourceCsScript == script) { assetsToUpdate.Add(programAsset); } } } try { if (assetsToUpdate.Count > 0) { if (settings == null || settings.compileAllScripts) { UdonSharpProgramAsset.CompileAllCsPrograms(); } else { UdonSharpCompiler compiler = new UdonSharpCompiler(assetsToUpdate.ToArray()); compiler.Compile(); } } } finally { modifiedScripts.Clear(); } }
public void CompileCsProgram() { try { UdonSharpCompiler compiler = new UdonSharpCompiler(this); compiler.Compile(); } catch (Exception e) { compileErrors.Add(e.ToString()); throw e; } }
public static void CompileAllCsPrograms() { string[] udonSharpDataAssets = AssetDatabase.FindAssets($"t:{typeof(UdonSharpProgramAsset).Name}"); List <UdonSharpProgramAsset> udonSharpPrograms = new List <UdonSharpProgramAsset>(); foreach (string dataGuid in udonSharpDataAssets) { udonSharpPrograms.Add(AssetDatabase.LoadAssetAtPath <UdonSharpProgramAsset>(AssetDatabase.GUIDToAssetPath(dataGuid))); } UdonSharpCompiler compiler = new UdonSharpCompiler(udonSharpPrograms.ToArray()); compiler.Compile(); }
static void HandleScriptModifications(List <MonoScript> scripts) { UdonSharpSettings settings = UdonSharpSettings.GetSettings(); if (settings != null && !settings.autoCompileOnModify) { return; } string[] udonSharpDataAssets = AssetDatabase.FindAssets($"t:{typeof(UdonSharpProgramAsset).Name}"); List <UdonSharpProgramAsset> udonSharpPrograms = new List <UdonSharpProgramAsset>(); foreach (string dataGuid in udonSharpDataAssets) { udonSharpPrograms.Add(AssetDatabase.LoadAssetAtPath <UdonSharpProgramAsset>(AssetDatabase.GUIDToAssetPath(dataGuid))); } HashSet <UdonSharpProgramAsset> assetsToUpdate = new HashSet <UdonSharpProgramAsset>(); foreach (MonoScript script in scripts) { foreach (UdonSharpProgramAsset programAsset in udonSharpPrograms) { if (programAsset.sourceCsScript == script) { assetsToUpdate.Add(programAsset); } } } if (assetsToUpdate.Count > 0) { if (settings == null || settings.compileAllScripts) { UdonSharpProgramAsset.CompileAllCsPrograms(); } else { UdonSharpCompiler compiler = new UdonSharpCompiler(assetsToUpdate.ToArray()); compiler.Compile(); } } }
public void CompileCsProgram() { UdonSharpCompiler compiler = new UdonSharpCompiler(this); compiler.Compile(); }
static void HandleScriptModifications() { UdonSharpSettings settings = UdonSharpSettings.GetSettings(); if (settings != null) { if (!settings.autoCompileOnModify) { modifiedScripts.Clear(); return; } if (settings.waitForFocus && !UnityEditorInternal.InternalEditorUtility.isApplicationActive) { return; } } if (modifiedScripts.Count == 0) { return; } string[] udonSharpDataAssets = AssetDatabase.FindAssets($"t:{typeof(UdonSharpProgramAsset).Name}"); List <UdonSharpProgramAsset> udonSharpPrograms = new List <UdonSharpProgramAsset>(); foreach (string dataGuid in udonSharpDataAssets) { udonSharpPrograms.Add(AssetDatabase.LoadAssetAtPath <UdonSharpProgramAsset>(AssetDatabase.GUIDToAssetPath(dataGuid))); } HashSet <UdonSharpProgramAsset> assetsToUpdate = new HashSet <UdonSharpProgramAsset>(); foreach (MonoScript script in modifiedScripts) { foreach (UdonSharpProgramAsset programAsset in udonSharpPrograms) { if (programAsset.sourceCsScript == script) { assetsToUpdate.Add(programAsset); } } } try { if (assetsToUpdate.Count > 0) { if (settings == null || settings.compileAllScripts) { UdonSharpProgramAsset.CompileAllCsPrograms(); } else { UdonSharpCompiler compiler = new UdonSharpCompiler(assetsToUpdate.ToArray()); compiler.Compile(); } } } finally { modifiedScripts.Clear(); } modifiedScripts.Clear(); }