gpt4 book ai didi

javascript - 将脚本添加到 HTML 中的 assetbundle

转载 作者:行者123 更新时间:2023-11-29 18:06:52 29 4
gpt4 key购买 nike

我正在做一个项目,它使用 Unity WebGL 以 3D 形式显示不同的机器/零件/..,这些零件或机器由用户选择,然后加载到场景中(目前只有一个场景,但我们可能还想动态加载场景)。

由于有大量选择,我们希望创建不同的资源包,每个资源包包含 1 个或多个部分,因此我们可以按需下载这些资源。

我通过将 URL 传递给 LoadFromCacheOrDownload 并从 www 对象中提取 gameObject 成功地完成了此操作。

现在我们还想在 Assets 中包含脚本以创建动画和用户交互。我遵循了此处给出的解释:docs.unity3d link ,并且这在 WebPlayer 中完美运行。然而,最终要求是 WebGL,为 WebGL 构建的相同代码会出现以下错误:

NotSupportedException: /Users/builduser/buildslave/unity/build/Tools/il2cpp/il2cpp/libil2cpp/icalls/mscorlib/System/AppDomain.cpp(184) : Unsupported internal call for IL2CPP:AppDomain::LoadAssemblyRaw - "This icall is not supported by il2cpp." System.AppDomain.LoadAssemblyRaw (System.Byte[] rawAssembly, System.Byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence, Boolean refonly) System.AppDomain.Load (System.Byte[] rawAssembly, System.Byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence, Boolean refonly) System.AppDomain.Load (System.Byte[] rawAssembly, System.Byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence) System.AppDomain.Load (System.Byte[] rawAssembly) System.Reflection.Assembly.Load (System.Byte[] rawAssembly) API+c__Iterator0.MoveNext ()

它似乎源于调用 System.Reflection.Assembly.Load(txt.bytes);(我从示例中得到),所以我想 Reflection 类不是(还? ) 完全支持 WebGL。我似乎找不到关于此的任何文档。

有没有办法为此使用反射?充其量我希望有一些不同的代码可以解决这个问题,最坏的情况是我们将不得不在 Javascript 中为 WebGL 创建脚本并按原样添加它们而不是二进制文件?我在这里有点迷路,所以感谢任何线索。

(从 answers.unity3d 交叉发布)

最佳答案

不,没有办法通过反射绕过这个限制。

在这种情况下,Unity 中网络播放器和 WebGL 构建目标之间的主要区别在于 WebGL 使用 AOT(提前)编译,而网络播放器使用 JIT(即时)编译。使用 AOT 编译,不可能在运行时加载编译时不存在的程序集。

当然,可以在运行时加载 JavaScript 代码,所以正如您所建议的,您可能需要走这条路。

关于javascript - 将脚本添加到 HTML 中的 assetbundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30569346/

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