public void UpdateSourceHash(UdonSharpProgramAsset programAsset, string sourceText) { if (programAsset?.sourceCsScript == null) { return; } if (!AssetDatabase.TryGetGUIDAndLocalFileIdentifier(programAsset, out string programAssetGuid, out long _)) { return; } string newHash = UdonSharpUtils.HashString(sourceText); if (sourceFileHashLookup.ContainsKey(programAssetGuid)) { if (sourceFileHashLookup[programAssetGuid] != newHash) { _sourceDirty = true; } sourceFileHashLookup[programAssetGuid] = newHash; } else { sourceFileHashLookup.Add(programAssetGuid, newHash); _sourceDirty = true; } }
private static string HashSourceFile(MonoScript script) { string scriptPath = AssetDatabase.GetAssetPath(script); string scriptText = ""; try { scriptText = UdonSharpUtils.ReadFileTextSync(scriptPath); } catch (System.Exception e) { scriptText = Random.value.ToString(); Debug.Log(e); } return(UdonSharpUtils.HashString(scriptText)); }