Reputation: 408
Apologies for the ignorance in this question.
Suppose I have an example.unity3d file, and that's all. Is it possible to edit/change/replace an asset within? I have Disunity, and can get things like the following:
All the raw files (example)
AssetBundle
X.bin
Assets
AudioClip
1.bin
2.bin
AudioSource
...etc
A list of everything in there
[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.
The structure
[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
The raw data itself (binary)
The actual assets (ogg files)
So I feel like I have everything I need to go in and edit one of those sound files, but for some reason I can't quite figure out how to get all that data into the Unity program to recompile. I know you can't directly import the *.unity3d file, but surely there is an easier way outside of somehow editing the hex?
This would be a great help to me. Thanks!
Upvotes: 4
Views: 11576
Reputation: 5303
This used to be possible with Unity Assets Bundle Extractor (UABE). However, this software has not been updated since August 2019, and it is not compatible with the latest versions of Unity.
Nowadays, the replacement of choice seems to be:
Other potential replacements would be:
Upvotes: 2
Reputation: 1
11 Months and no honest answer? Anyway, use the unpackassets editor extension to import the *.cab file... you will have to use * in the file selector, but you will be able to import the whole cab file... you will get all the assets plus a monoscript resource file which is a symbolic link to the actual scripts but will usually crash the unity compiler... so delete or move it out of the project folder and restart unity. Use ILSpy or .NetReflector8 to decompile the scripts. The scripts are contained within the Assembly-CSharp.dll, Assembly.Csharp-firstpass.dll, Assembly.UnityScript.dll, and Assembly.UnityScript-firstpass.dll. If you had kept the monoscript folder you can see what reference scripts are being referenced and use those to recompile the project file. That part is a pain in the butt. The meshes and prefabs along with gameObjects often get imported fine within unity; you can export them for later use, or use X-Change3d by bloodysoft (in the unity store) to export them as fbx as I do to modify them. Anyway... this should help you for a start if you are still interested...
Upvotes: 0