在开始之前,请允许我坚持我不想将文件放入 StreamingAssets 中。我知道它会起作用,但这不是要求的一部分。
我需要读取二进制资源。这是一个 GIF 动画文件。所以我需要从资源加载它并访问它的字节。
我想我可以将其重命名为 Assets/Resources/myfile.bytes 然后使用
var myfile = Resources.Load<TextAsset>("myfile");
但是这会返回 null。我也尝试了许多具有不同扩展名的变体。
我怀疑每当我将 GIF 文件拖到 Unity 资源中时,即使扩展名发生更改,它也始终会识别文件类型。我认为是因为它生成了文件“myfile.bytes.gif.meta”。
此时我不知道该怎么办,我准备放弃了。请帮帮我。
编辑 1:这只发生在 MacOS 上,而不是 Windows 上。请让我知道如何让它在 MacOS 上也能工作。
并非所有资产都是
TextAsset
。 gif 图像被 Unity 识别为图像并导入为 Texture2D
。所以实际的资产已经是导入的Texture2D
。如果您想将任意数据作为 TextAsset
发送,则必须附加 .txt
、.bytes
或任何此处提到的扩展名。添加到您的文件名,这样 Unity 实际上会将它们视为 TextAssets
。
请记住,资产/资源名称始终是不带(最终)扩展名的文件名。因此,当您附加
.bytes
并且文件名变为 "MyFile.gif.bytes"
时,资源名称应为 "MyFile.gif"
。