tuyoogame / YooAsset

unity3d resources management system
https://www.yooasset.com/
Apache License 2.0
2.34k stars 460 forks source link

请求更新文档 #262

Closed UriPomer closed 2 weeks ago

UriPomer commented 5 months ago

文档中很多内容已经过时了,网上一些教程代码中的一些函数直接消失而非改名。Space Shooter中使用第三方库,阅读起来对新手十分不友好

gmhevinci commented 5 months ago

非常抱歉,我会尽快更新官方主页的文档。

UriPomer commented 5 months ago

十分感谢。目前这个状态想要搞懂怎么使用,还是要去看示例项目里的第三方框架的源码才行,比较花时间。对着官方文档做也会踩到坑。

UriPomer commented 5 months ago

这边还有两个问题,请教一下。

  1. File Name Style 选择 HashName 打包失败,其他两种可以,请问大概是哪方面的原因,报错如下: image 还伴随着几个这样的报错: image

  2. LoadRawFileAsync 方法无法加载 DLL ,我想结合 HybridCLR 一起使用,捣鼓过程中遇到了这个问题, image 感觉大概是这方面的问题,PipeLine 对应不上,但我的包中除了 RawFile 还有其他的资源,不能使用 RawFileBuildPipeLine image 在初始化代码中,这里似乎也需要预先指定 PipeLine。 我好像无法做到同时使用 BulitInPipeLine 和 RawFilePipeLine,如果我想加载 DLL ,是否应该使用两个包(根据网上的教程通常只使用了一个包,自己试了一下用两个包比较麻烦,而且可行性未知)

absences commented 5 months ago

使用两个package可以参考我的仓库 https://github.com/absences/Unity_HybridCLR_YooAsset_Luban-protobuf3-

如果使用BulitInPipeLine加载dll,使用 LoadAssetAsync也是能加载二进制文件的,

var handle = loader.LoadAssetAsync("dll");
await handle;
var dt = handle.GetAssetObject<TextAsset>();
Assembly.Load(dt.bytes);
gmhevinci commented 5 months ago

这边还有两个问题,请教一下。

  1. File Name Style 选择 HashName 打包失败,其他两种可以,请问大概是哪方面的原因,报错如下: image 还伴随着几个这样的报错: image
  2. LoadRawFileAsync 方法无法加载 DLL ,我想结合 HybridCLR 一起使用,捣鼓过程中遇到了这个问题, image 感觉大概是这方面的问题,PipeLine 对应不上,但我的包中除了 RawFile 还有其他的资源,不能使用 RawFileBuildPipeLine image 在初始化代码中,这里似乎也需要预先指定 PipeLine。 我好像无法做到同时使用 BulitInPipeLine 和 RawFilePipeLine,如果我想加载 DLL ,是否应该使用两个包(根据网上的教程通常只使用了一个包,自己试了一下用两个包比较麻烦,而且可行性未知)

第二个问题,楼上已经给出答案了。 我们来讨论第一个问题。根据日志看是反序列化清单抛出的异常:manifest.BundleDic2.Add(packageBundle.FileName, packageBundle); 如果FileNameStyle选择HashName,那么FileName就是哈希值名称.bundle 根据日志里的信息清单里的哈希值似乎为空。这个需要你给我提供一个可以复现的工程。可以加QQ群,然后私聊我。

UriPomer commented 5 months ago

这个问题我自己尝试复现的过程中,遇到了一些情况:

  1. 首先我从Plastic SCM 版本管理中克隆了一份新的项目,把项目文件夹命名为YooAssetTest,结果打包成功,于是我继续往下尝试能否复现
  2. 然后我直接把原来的项目打包成zip,解压到一个叫YooAssetTest的文件夹下,然后尝试打包,结果还是打包成功。这个时候我开始注意到不对劲,我发现我的项目名中有空格。
  3. 针对上面发现的空格问题,我更改文件夹名为Yoo Asset Test,然后打包,依然成功
  4. 怀疑是缓存之类的问题,我把项目删掉,然后重新创建一个名为Yoo Asset Test的文件夹,再把zip解压进去,然后打包,还是成功
  5. 最后一次尝试成功复现:我创建了一个新文件夹,名为【我原来的项目名称】 2,然后打包,报错结果一样,打包失败。感觉不是单纯的空格问题。 我现在申请加入qq群然后把zip(1.65G)发给您
UriPomer commented 5 months ago

使用两个package可以参考我的仓库 https://github.com/absences/Unity_HybridCLR_YooAsset_Luban-protobuf3-

如果使用BulitInPipeLine加载dll,使用 LoadAssetAsync也是能加载二进制文件的,

var handle = loader.LoadAssetAsync("dll");
await handle;
var dt = handle.GetAssetObject<TextAsset>();
Assembly.Load(dt.bytes);

好的十分感谢

gmhevinci commented 2 weeks ago

官方文档现在已经分版本了。可以在主页里切换1.5x, 2.1x, 2.2x三个版本