# unity环境下调用fmod\_stdio.cs下的接口loadBankFile读取bank文件有问题

**URL:** <https://qa.fmod.com/t/unity-fmod-stdio-cs-loadbankfile-bank/22207>\
**Category:** 中文支持\
**Created:** [October 22, 2024, 9:02am UTC](https://qa.fmod.com/t/unity-fmod-stdio-cs-loadbankfile-bank/22207 "2024-10-22T09:02:05Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![xuzhigang](https://avatars.discourse-cdn.com/v4/letter/x/a9a28c/32.png) [@xuzhigang](https://qa.fmod.com/u/xuzhigang)\
**Post date:** [October 22, 2024, 9:02am UTC](https://qa.fmod.com/t/unity-fmod-stdio-cs-loadbankfile-bank/22207/1 "2024-10-22T09:02:05Z")

</div>

是一定要把bank文件从streamingassetdatapath拷贝到persistdatapath目录下吗 ？（persistdatapath有读和写权限）

---

<div class="post-metadata">

**Author:** ![li\_fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/li_fmod/32/6577_2.png) [@li\_fmod](https://qa.fmod.com/u/li_fmod)\
**Post date:** [October 23, 2024, 1:14am UTC](https://qa.fmod.com/t/unity-fmod-stdio-cs-loadbankfile-bank/22207/2 "2024-10-23T01:14:45Z")

</div>

你好，

能麻烦你再详细描述一下你是如何读取bank文件的，以及读取bank文件后遇到的问题吗？不知有无显示什么错误信息呢？

正常来说并不需要把bank文件从 StreamingAssetDataPath 移出，请问你使用的是什么版本的FMOD Unity插件呢？这个问题是发生在团结引擎还是普通Unity上呢？

---

<div class="post-metadata">

**Author:** ![xuzhigang](https://avatars.discourse-cdn.com/v4/letter/x/a9a28c/32.png) [@xuzhigang](https://qa.fmod.com/u/xuzhigang)\
**Post date:** [October 24, 2024, 8:50am UTC](https://qa.fmod.com/t/unity-fmod-stdio-cs-loadbankfile-bank/22207/3 "2024-10-24T08:50:49Z")

</div>

![image](https://canada1.discourse-cdn.com/flex036/uploads/fmod/original/2X/b/b537b8d04e68f8738a3513a5f397b400fe91d421.png)  
普通unity引擎的 这个接口可以读取到StreamingAssetDataPath 下的bank吗

---

<div class="post-metadata">

**Author:** ![xuzhigang](https://avatars.discourse-cdn.com/v4/letter/x/a9a28c/32.png) [@xuzhigang](https://qa.fmod.com/u/xuzhigang)\
**Post date:** [October 24, 2024, 8:51am UTC](https://qa.fmod.com/t/unity-fmod-stdio-cs-loadbankfile-bank/22207/4 "2024-10-24T08:51:15Z")

</div>

您看看我发的

---

<div class="post-metadata">

**Author:** ![li\_fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/li_fmod/32/6577_2.png) [@li\_fmod](https://qa.fmod.com/u/li_fmod)\
**Post date:** [October 24, 2024, 10:56pm UTC](https://qa.fmod.com/t/unity-fmod-stdio-cs-loadbankfile-bank/22207/5 "2024-10-24T22:56:35Z")

</div>

> [@xuzhigang](#):
>
> 普通unity引擎的 这个接口可以读取到StreamingAssetDataPath 下的bank吗

如果您只是想要加载Bank文件的话，是可以直接从StreamingAssetDataPath下读取到Bank文件的，请问您的StreamingAsset 文件夹里有实际存在的Bank文件吗？因为[Studio::System::loadBankFile](https://www.fmod.com/docs/2.02/api/studio-api-system.html#studio_system_loadbankfile) 是更底层的控制，它会需要通过文件系统的绝对路径来加载Bank文件。

一般的使用方法如下：

```auto
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](https://fmod.com/docs/2.02/unity/api-runtimemanager.html#loadbank)

具体的使用方法可参考：

```auto
using UnityEngine;
using FMODUnity;  

public class FMODLoadBank : MonoBehaviour
{
    [BankRef]
    public List<string> bankRefs = new List<string>();

    void Start()
    {
        // 加载bank文件
        RuntimeManager.LoadBank(bankRefs[0]);
    }
}

```

您可以试一下看看问题是否还存在，如果还有问题的话欢迎随时问我，或者方便的话能提供更多信息让我调查看看么？

---

<div class="post-metadata">

**Author:** ![xuzhigang](https://avatars.discourse-cdn.com/v4/letter/x/a9a28c/32.png) [@xuzhigang](https://qa.fmod.com/u/xuzhigang)\
**Post date:** [October 25, 2024, 2:43am UTC](https://qa.fmod.com/t/unity-fmod-stdio-cs-loadbankfile-bank/22207/6 "2024-10-25T02:43:39Z")

</div>

感谢回复 我先自己试试
