问题标签 [assetbundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1029 浏览

c# - 多次下载 AssetBundle 失败

我正在 Unity 2017.1.0f3 中开发一个应用程序(如果这很重要,则适用于 HoloLens)。这个应用程序有 3 个场景

  • 场景 1. 用户提供凭据并使用服务进行身份验证。
  • 场景 2. 服务提供,应用程序显示用户可以选择的资源列表。
  • 场景 3. 选择资源后,AssetBundle下载并显示给用户。

这是下载的协程AssetBundle

用户有能力在场景之间来回切换,并且可能两次选择相同的资源。这就是问题发生的时候。

用户第一次尝试下载AssetBundle一切正常。第二次(以及所有后续)下载失败。失败不是下载过程中的错误,而是
((DownloadHandlerAssetBundle)request.downloadHandler).assetBundle; 始终为空。

我认为 Unity 不允许您下载相同AssetBundle的次数超过一次,并且您必须在下载后对其进行缓存。是这样吗?我想避免这种情况,因为该应用程序最终可以有大量AssetBundle可供下载的 s 并在下载后将它们全部缓存是一个不好的选择。

如果需要,您是否知道多次下载同一个 AssetBundle 的方法?

0 投票
0 回答
306 浏览

c# - 从资产包加载的场景没有动画

我有一个非常简单的场景,一个带有管理其旋转的脚本的立方体。

我从整个场景生成了一个资产包,当我加载这个场景时,立方体出现在屏幕上,但旋转不起作用。立方体是静态的,就像场景没有正确加载一样。

这是我用来加载场景的代码:

0 投票
0 回答
440 浏览

unity3d - 如何在 Unity3D 中获取 AssetBundleManifest

按照官方网站https://docs.unity3d.com/ScriptReference/Caching.html上的说明,我AssetBundleManifest既无法从服务器获取,也无法从本地存储获取。最终目标是得到AssetBundle's hash。

控制台中的主要错误消息是:

AssetBundle“内存”解压数据失败

我尝试使用以下内容:

UnityWebRequest- 从服务器加载

LoadFromFile- 从本地存储到本地

如何正确执行?

0 投票
1 回答
1264 浏览

c# - Unity asset bundle server automation

I am developing an application in Unity where users can upload their own 3d-models. I have been searching for ways to implement this and the best way to load models from all types seems to be asset bundles. To create these bundles on a server i want to run Unity in batch mode and create the bundles from a static method.

The problem I'm facing is that it seems to be impossible to include objects in a asset bundle from script. In the editor you just select the asset bundle name but to automate this, that won't be possible.

0 投票
0 回答
28 浏览

c# - unity 5.6.2 无法加载动画剪辑

因此,我一直在尝试找到一种编写代码的方法,该代码允许您从文件夹加载动画剪辑并使用动画控制器覆盖将其应用于角色。

当我从资源文件夹加载动画剪辑时,我得到了它。但问题是一旦你建立,资源文件夹停止导入(据我所知)

之后,我尝试使用assetbundle 方法进行加载。但是我不断收到一个空引用错误,说assetbundle 是空的。这是我的代码:

打印始终显示空错误。我不确定我做错了什么。另外,如果有人对使用其他方法动态加载有任何建议,请告诉我。

编辑:因为这个问题被标记为重复,我觉得我需要让我的问题更清楚。

我知道 Resources.load 允许您从资源文件夹加载,但这在实际构建中仍然有效吗?因为当它处于构建格式时,我无法让它工作。我只让它适用于编辑器格式。

除此之外,我不太确定为什么assetbundle 方法不起作用,我不确定它是什么类型的错误。

0 投票
2 回答
13201 浏览

c# - 无法加载,因为已经加载了具有相同文件的另一个 AssetBundle

我想在 AR 相机中播放视频。我总共有 10 个视频和一个视频播放器。我正在从服务器下载视频播放器作为资产包,名称为 videoplayer.unit3d 并存储到 SD 卡中。当我扫描 imageTarget 时,我正在使用AssetBundle.LoadFromFile()函数读取视频资产包文件,并且它第一次工作正常。

如果我扫描第二个 imageTarget 它显示以下错误

“无法加载,因为已经加载了具有相同文件的另一个 AssetBundle”

我试过了bundle.Unload(true);Caching.cleanchache()但它没有工作,抛出同样的错误。也试过bundle.Unload(false);

0 投票
1 回答
1107 浏览

unity3d - Unity - 资产包未正确创建

我正在统一创建 3D 对象的资产包。它不是使用变换值(缩放、旋转、位置)创建的。但是,当我调试它的值时,它的值是正确的,但是在捆绑并加载到我的应用程序之后,它会重置为默认值。

我正在使用以下脚本将 3D 对象导出到资产包

0 投票
0 回答
91 浏览

unity3d - Unity3d Canvas Scaler、AssetBundles 和屏幕分辨率

我想构建我的手机游戏,使其最适合所有手机分辨率,并根据特定的屏幕分辨率降低构建大小和内存。

我想到了使用以下方式:

  1. 使用AssetBundle并根据屏幕分辨率提供相关的 AssetBundle 变体(基本上我想支持 HD + QHD 不同的资产)
  2. 使用CanvasScaler以便在需要时按比例缩小
  3. init 构建可能需要在其中包含相关的屏幕分辨率资产包(在StreamingAssets文件夹下) - 所以这意味着我将为不同的分辨率提供不同的构建。

这种方法的几个问题:

  • 我认为 1 + 2 会发生冲突,因为如果我将 CanvasScaler 设置为某个分辨率 - 然后在运行时替换资产(使用资产包)将导致 CanvasScaler 也缩小已加载的已按比例缩小的资产。
  • 我们可以为不同的分辨率创建不同的构建吗?在同一个 App Store/Google Play...
  • 创建高/低资产可能会导致维护开销 - 我可以通过代码自动创建较低的分辨率吗?

什么是支持不同屏幕分辨率以及保持较低构建和内存大小的最佳方法?

0 投票
1 回答
633 浏览

c# - 在运行时在 Unity 构建中下载资产,无需资产包

从服务器下载资产的一种方法是制作资产包,将其上传到特定的 URL,然后在运行时将该包下载到统一项目中。最后,卸载资产以使用它是统一的。

但是我的场景是允许用户将选择的资产上传到服务器并将其作为资产下载到统一项目中。

还有其他方法可以执行此任务吗?

0 投票
0 回答
1920 浏览

animation - 如何从统一的资产包文件中导出动画剪辑数据?

unity的AssetBundle文件包含各种类型的数据,比如mesh、texture和animation等平台并使用JAVA实现骨骼动画。在 Unity Studio 的帮助下,我可以将assetbundle 文件中的网格数据导出为 .fbx 格式的文件。但是,我无法从导出的 .fbx 文件中找到任何动画数据。使用 Unity Studio 导出assetbundle 文件后,我发现我要导出的动画数据是使用animationclip 类型存储的。但是,Unity Studio 仅支持导出原始文件,即 .dat 格式。我不知道如何在外部使用 Java 或 C++ 解析这个文件。所以我的问题是,如何将资产包中的动画剪辑数据导出到 ASCII 文件中,或者如何将带有动画的资产包中的 fbx 模型导出?如果有人可以帮助我,我将不胜感激。