Aetheria/Assets/Wwise/Editor/WwiseMenu/Common/AkWwiseIdConverter.cs
Reinier Vens db8c3c7779 Initial Wwise Integration
Created wwise project
Integrated inventory UI sounds
Improved projectile weapon behavior (randomized start position, stopped them from self-destructing at target range when airburst is disabled)
2021-02-27 20:53:36 +00:00

63 lines
No EOL
2.2 KiB
C#

#if UNITY_EDITOR
internal static class AkWwiseIDConverter
{
private static readonly string s_bankDir = UnityEngine.Application.dataPath;
private static readonly string s_converterScript = System.IO.Path.Combine(
System.IO.Path.Combine(System.IO.Path.Combine(UnityEngine.Application.dataPath, "Wwise"), "Tools"),
"WwiseIDConverter.py");
private static readonly string s_progTitle = "WwiseUnity: Converting SoundBank IDs";
[UnityEditor.MenuItem("Assets/Wwise/Convert Wwise SoundBank IDs", false, (int) AkWwiseMenuOrder.ConvertIDs)]
public static void ConvertWwiseSoundBankIDs()
{
var bankIdHeaderPath =
UnityEditor.EditorUtility.OpenFilePanel("Choose Wwise SoundBank ID C++ header", s_bankDir, "h");
if (string.IsNullOrEmpty(bankIdHeaderPath))
{
UnityEngine.Debug.Log("WwiseUnity: User canceled the action.");
return;
}
var start = new System.Diagnostics.ProcessStartInfo();
start.FileName = "python";
start.Arguments = string.Format("\"{0}\" \"{1}\"", s_converterScript, bankIdHeaderPath);
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
var progMsg = "WwiseUnity: Converting C++ SoundBank IDs into C# ...";
UnityEditor.EditorUtility.DisplayProgressBar(s_progTitle, progMsg, 0.5f);
using (var process = System.Diagnostics.Process.Start(start))
{
process.WaitForExit();
try
{
//ExitCode throws InvalidOperationException if the process is hanging
if (process.ExitCode == 0)
{
UnityEditor.EditorUtility.DisplayProgressBar(s_progTitle, progMsg, 1.0f);
UnityEngine.Debug.Log(string.Format(
"WwiseUnity: SoundBank ID conversion succeeded. Find generated Unity script under {0}.", s_bankDir));
}
else
UnityEngine.Debug.LogError("WwiseUnity: Conversion failed.");
UnityEditor.AssetDatabase.Refresh();
}
catch (System.Exception ex)
{
UnityEditor.AssetDatabase.Refresh();
UnityEditor.EditorUtility.ClearProgressBar();
UnityEngine.Debug.LogError(string.Format(
"WwiseUnity: SoundBank ID conversion process failed with exception: {}. Check detailed logs under the folder: Assets/Wwise/Logs.",
ex));
}
UnityEditor.EditorUtility.ClearProgressBar();
}
}
}
#endif // #if UNITY_EDITOR