重新编译/编辑.unity3d文件中的资产

时间:2014-03-26 17:11:51

标签: unity3d

对这个问题中的无知道歉。

假设我有一个example.unity3d文件,那就是全部。是否可以编辑/更改/替换资产?我有不团结,可以得到以下内容:

所有原始文件(示例)

    AssetBundle
         X.bin
    Assets
    AudioClip
         1.bin
         2.bin
    AudioSource
    ...etc

其中所有内容的列表

[info] DisUnity v0.2.1
Path                                                             | Offset     |     Length
---------------------------------------------------------------- | ---------- | ----------
CAB-file                                                         | 0x18       |   18750004

[info] Processing file.unity3d:CAB-file
PID          | CID  | Class name               | Offset     |     Length | Object name
------------ | ---- | ------------------------ | ---------- | ---------- | -----------
-2146260248  | 82   | AudioSource              | 0x38       |        164 |

...etc.

结构

[info] DisUnity v0.2.1
GameObject
  vector m_Component
    Array Array
      SInt32 size
      pair data
        SInt32 first
        PPtr<Component> second
          SInt32 m_FileID
          SInt32 m_PathID
...etc

原始数据本身(二进制)

实际资产(ogg文件)


所以我觉得我有我需要的所有内容并编辑其中一个声音文件,但出于某种原因,我无法弄清楚如何将所有数据都输入Unity程序进行重新编译。我知道你不能直接导入* .unity3d文件,但是在某种程度上编辑十六进制文件之外肯定有一种更简单的方法吗?

这对我很有帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

11个月没有诚实的回答?无论如何,使用unpackassets编辑器扩展来导入* .cab文件...你必须在文件选择器中使用*,但是你将能够导入整个cab文件...你将获得所有的资产加上monoscript资源文件,它是实际脚本的符号链接,但通常会使统一编译器崩溃...所以删除或将其移出项目文件夹并重新启动unity。使用ILSpy或.NetReflector8反编译脚本。这些脚本包含在Assembly-CSharp.dll,Assembly.Csharp-firstpass.dll,Assembly.UnityScript.dll和Assembly.UnityScript-firstpass.dll中。如果您保留了monoscript文件夹,则可以看到正在引用的引用脚本,并使用这些脚本重新编译项目文件。这部分是对接的痛苦。网格和预制件以及游戏对象通常在统一内进口良好;您可以将它们导出供以后使用,或者使用Bloodysoft的X-Change3d(在Unity商店中)将它们导出为fbx,就像我修改它们一样。无论如何......如果你仍然感兴趣,这应该可以帮助你开始...