当我在编辑器中运行我的Unity应用程序时,它能够读取.dll所需的.dll和其他自定义文件,并且工作正常。但是,当我进行构建时,它只包含构建的Plugins文件夹中的.dll文件,而不包括其他自定义文件。有没有办法强制Unity包含其他文件?我在构建之前尝试将它们放在Plugins and Resources文件夹中,在这两种情况下它只保留.dll。
答案 0 :(得分:2)
自定义文件是.obf,但我不认为这是相关的
非常相关。 Unity不支持所有类型的库。
以下是支持的库扩展:
对于Windows,您可以使用 .dll 。
对于Linux,支持 .so 。
对于Android,您只能使用 .aar , rar 和 .so 。
对于iOS,使用.a但您也可以使用非编译代码,例如 .m , .mm ,。 c 和 .cpp 。
不支持 .obf 。如果你想将它添加到你的项目中以便你可以加载并执行那么你就不走运了。
如果您只是想让Unity将它包含在您的最终项目构建中,以便您可以阅读它,那么您可以。这并不意味着您可以加载并执行它。
首先,将扩展名从“。obf”重命名为“。bytes”。将其放在 Resources 文件夹中,并使用TextAsset
函数将其读作Resources.Load
。您可以使用TextAsset.bytes
访问数据。
TextAsset dataAsset = (TextAsset)Resources.Load("YourObfName", typeof(TextAsset));
byte[] data = dataAsset.bytes;
不确定阅读它有多大帮助,但这是为了向您展示如何将其包含在构建中并阅读它但除非有C#API这样做,否则您无法执行它而我不认为任何此类API都存在。