如果文件包含 GIF,则无法使用 Resources.Load<TextAsset> 加载 .bytes(二进制)

问题描述 投票:0回答:1

在开始之前,请允许我坚持我不想将文件放入 StreamingAssets 中。我知道它会起作用,但这不是要求的一部分。

我需要读取二进制资源。这是一个 GIF 动画文件。所以我需要从资源加载它并访问它的字节。

我想我可以将其重命名为 Assets/Resources/myfile.bytes 然后使用

var myfile = Resources.Load<TextAsset>("myfile");

但是这会返回 null。我也尝试了许多具有不同扩展名的变体。

我怀疑每当我将 GIF 文件拖到 Unity 资源中时,即使扩展名发生更改,它也始终会识别文件类型。我认为是因为它生成了文件“myfile.bytes.gif.meta”。

此时我不知道该怎么办,我准备放弃了。请帮帮我。

编辑 1:这只发生在 MacOS 上,而不是 Windows 上。请让我知道如何让它在 MacOS 上也能工作。

c# unity-game-engine assets
1个回答
0
投票

并非所有资产都是

TextAsset
。 gif 图像被 Unity 识别为图像并导入为
Texture2D
。所以实际的资产已经是导入的
Texture2D
。如果您想将任意数据作为
TextAsset
发送,则必须附加
.txt
.bytes
或任何此处提到的扩展名。添加到您的文件名,这样 Unity 实际上会将它们视为
TextAssets

请记住,资产/资源名称始终是不带(最终)扩展名的文件名。因此,当您附加

.bytes
并且文件名变为
"MyFile.gif.bytes"
时,资源名称应为
"MyFile.gif"

© www.soinside.com 2019 - 2024. All rights reserved.