是一定要把bank文件从streamingassetdatapath拷贝到persistdatapath目录下吗 ?(persistdatapath有读和写权限)
你好,
能麻烦你再详细描述一下你是如何读取bank文件的,以及读取bank文件后遇到的问题吗?不知有无显示什么错误信息呢?
正常来说并不需要把bank文件从 StreamingAssetDataPath 移出,请问你使用的是什么版本的FMOD Unity插件呢?这个问题是发生在团结引擎还是普通Unity上呢?
您看看我发的
如果您只是想要加载Bank文件的话,是可以直接从StreamingAssetDataPath下读取到Bank文件的,请问您的StreamingAsset 文件夹里有实际存在的Bank文件吗?因为Studio::System::loadBankFile 是更底层的控制,它会需要通过文件系统的绝对路径来加载Bank文件。
一般的使用方法如下:
using System.IO;
using FMODUnity;
using FMOD.Studio;
public class FMODLoader : MonoBehaviour
{
private FMOD.Studio.Bank masterBank;
void Start()
{
// 获取StreamingAssets的路径
string masterBankPath = Path.Combine(Application.streamingAssetsPath, "Master.bank");
// 加载Master.bank文件
RuntimeManager.StudioSystem.loadBankFile(masterBankPath, LOAD_BANK_FLAGS.NORMAL, out masterBank);
// 可以用来检查加载是否成功
var result = masterBank.isValid();
Debug.Log("Master.bank loaded state: " + result);
}
}
此外如果您想更直接方便一点的加载Bank文件的话,我们还有更高层一些的接口可以考虑使用: RuntimeManager.StudioSystem.loadBank
具体的使用方法可参考:
using UnityEngine;
using FMODUnity;
public class FMODLoadBank : MonoBehaviour
{
[BankRef]
public List<string> bankRefs = new List<string>();
void Start()
{
// 加载bank文件
RuntimeManager.LoadBank(bankRefs[0]);
}
}
您可以试一下看看问题是否还存在,如果还有问题的话欢迎随时问我,或者方便的话能提供更多信息让我调查看看么?
感谢回复 我先自己试试
1 Like