我正在使用资产包来加载本地化的 VO。这些 VO 文件可能是 .wavs 或 .oggs,在加载文件之前指定哪个是不可行的。从资源加载默认文件时这很好,因为 Unity 不需要文件扩展名。但是,当从 Asset Bundle 加载本地化文件时,如果文件扩展名未包含在加载调用中,则无法找到该文件。清单文件确实包含扩展名。
有没有办法在不提供扩展名的情况下从 Asset Bundle 加载文件?据我所知,这在 Unity 4 中是可行的,但我在使用 Unity 5 (5.1.2p3) 时遇到了问题。
就像我正在尝试做的一个例子:
这有效:
AudioClip soundClip = localisedAssetBundle.LoadAsset<AudioClip>( "sound.wav" );
这也有效:
AudioClip soundClip = Resources.Load<AudioClip>( "sound" );
但这不会:
AudioClip soundClip = localisedAssetBundle.LoadAsset<AudioClip>( "sound" );
回答后编辑:
我的例子并不完全正确,因为我是在解释它们。第三个示例实际上可以像上面写的那样工作。但是,我在代码中实际尝试做的是:
AudioClip soundClip = localisedAssetBundle.LoadAsset<AudioClip>( "Assets/sound" );
由于我既没有指定有效的路径,也没有指定有效的文件名,所以这不起作用。有关完整解释,请参阅已接受的答案。