gpt4 book ai didi

c# - 在 Android 上的 Unity 中从 C++ DLL 访问 StreamingAssets 资源

转载 作者:行者123 更新时间:2023-11-30 03:17:09 27 4
gpt4 key购买 nike

我在 Unity for Android 中开发了一个 C# 应用程序。此外,我构建了一个自定义的外部 C++ DLL,它已正确加载并可从 C# 代码访问。我还在 StreamingAssets 文件夹中添加了一些 .xml 文件,它们按预期工作,因为我可以看到这些文件已加载到 .apk 中。

目前我的问题是我无法从我的 C++ 库访问此类 xml 文件。一方面,我不确定如何正确执行此操作,另一方面,我尝试了多种不成功的方法,包括尝试了解我的 DLL 加载到哪个 cwd,然后导航到我需要的文件(这在我经常使用时不起作用)收到访问被拒绝的错误)。

编辑:

您的回复实际上让我走上了正确的轨道,我按如下方式解决了这个问题:

  • 在应用程序的 OnStart() 阶段,我使用 UnityWebRequest 类从 JAR 文件中提取所需的文件,然后将它们保存在 Application.persistentDataPath 中
  • 之后,我将每个文件的新路径传递给我的 DLL,这样我就可以毫无问题地访问它们。

最佳答案

在 Android 上,StreamingAssets 在一个 jar 里。这很可能是您无法访问它们的原因,但正如您在手册中看到的那样,您可以使用 WWW 类在那里检索文件。

On Android, the files are contained within a compressed .jar file (which is essentially the same format as standard zip-compressed files). This means that if you do not use Unity’s WWW class to retrieve the file, you need to use additional software to see inside the .jar archive and obtain the file.

( https://docs.unity3d.com/Manual/StreamingAssets.html )

关于c# - 在 Android 上的 Unity 中从 C++ DLL 访问 StreamingAssets 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55749223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com