menu
版本
2017.2.10.6745
2024.1.4.8780
2023.1.12.8706
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
2024.1.4.8780
2023.1.12.8706
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
默认情况下,Wwise Unity 集成假设关联的 Wwise 工程中的定义的平台用的都是默认名称。如果您希望给平台自定义的名称或为一个基本平台定义多个自定义平台,则将需要创建一个 C# 脚本来实现此目标。
info
|
备注: | 在此页面中,假设生成 SoundBank 的子文件夹与您的平台名称相同。如果名称不同,那么请注意,GetPlatformName 方法返回的字符串实际上被用作游戏中的 SoundBank 子文件夹名。 |
默认的平台解析脚本可以在文件 UNITY_PROJECT_ROOT/Assets/Wwise/Deployment/Components/AkBasePathGetter.cs
中找到。在 GetPlatformName()
方法中可以看到,所有平台的默认名称都由这个函数返回。如果您希望采用自己命名的平台名称,则必须扩展这个不完全(partial)类。
这个示例只涵盖了 iOS 平台的一个用例。在这个例子中,您希望有三个不同的自定义平台:一个是 ipod,一个是 iphone,一个是 ipad。
AkBasePathGetter
。该文件的内容类似于: public partial class AkBasePathGetter { #if UNTIY_IOS static partial void GetCustomPlatformName(ref string platformName) { switch(UnityEngine.iOS.Device.generation) { case UnityEngine.iOS.DeviceGeneration.iPodTouch1Gen: case UnityEngine.iOS.DeviceGeneration.iPodTouch2Gen: case UnityEngine.iOS.DeviceGeneration.iPodTouch3Gen: case UnityEngine.iOS.DeviceGeneration.iPodTouch4Gen: case UnityEngine.iOS.DeviceGeneration.iPodTouch5Gen: case UnityEngine.iOS.DeviceGeneration.iPodTouchUnknown: platformName = "iPod"; break; case UnityEngine.iOS.DeviceGeneration.iPad1Gen: case UnityEngine.iOS.DeviceGeneration.iPad2Gen: case UnityEngine.iOS.DeviceGeneration.iPad3Gen: case UnityEngine.iOS.DeviceGeneration.iPadMini1Gen: case UnityEngine.iOS.DeviceGeneration.iPad4Gen: case UnityEngine.iOS.DeviceGeneration.iPadAir1: case UnityEngine.iOS.DeviceGeneration.iPadMini2Gen: case UnityEngine.iOS.DeviceGeneration.iPadMini3Gen: case UnityEngine.iOS.DeviceGeneration.iPadAir2: case UnityEngine.iOS.DeviceGeneration.iPadUnknown: platformName = "iPad"; break; case UnityEngine.iOS.DeviceGeneration.iPhone: case UnityEngine.iOS.DeviceGeneration.iPhone3G: case UnityEngine.iOS.DeviceGeneration.iPhone3GS: case UnityEngine.iOS.DeviceGeneration.iPhone4: case UnityEngine.iOS.DeviceGeneration.iPhone4S: case UnityEngine.iOS.DeviceGeneration.iPhone5: case UnityEngine.iOS.DeviceGeneration.iPhone5C: case UnityEngine.iOS.DeviceGeneration.iPhone5S: case UnityEngine.iOS.DeviceGeneration.iPhone6: case UnityEngine.iOS.DeviceGeneration.iPhone6Plus: case UnityEngine.iOS.DeviceGeneration.iPhoneUnknown: default: platformName = "iPhone"; break; } } #endif }
info
|
备注: | 如果 platformName 未修改,则当前激活状态的 Unity 平台将使用默认平台名称。 |
AkBuildPreprocessor
,或(b)创建一个 C#,它将使用 AkBuildPreprocessor
内的功能。该文件的内容可以类似于: public class WwiseIOSBuildPreprocessor : IPreprocessBuild, IPostprocessBuild { public int callbackOrder { get { return 0; } } string iPodDestinationSoundBankFolder = string.Empty; string iPadDestinationSoundBankFolder = string.Empty; string iPhoneDestinationSoundBankFolder = string.Empty; public void OnPreprocessBuild(BuildTarget target, string path) { if (target == BuildTarget.iOS) { AkBuildPreprocessor.CopySoundbanks(true, "iPod", iPodDestinationSoundBankFolder); AkBuildPreprocessor.CopySoundbanks(true, "iPad", iPadDestinationSoundBankFolder); AkBuildPreprocessor.CopySoundbanks(true, "iPhone", iPhoneDestinationSoundBankFolder); } } public void OnPostprocessBuild(BuildTarget target, string path) { DeleteSoundbanks(iPodDestinationSoundBankFolder); DeleteSoundbanks(iPadDestinationSoundBankFolder); DeleteSoundbanks(iPhoneDestinationSoundBankFolder); } }
UNITY_PROJECT_ROOT/Assets/StreamingAssets/Audio/GeneratedSoundBanks
中。