disunity icon indicating copy to clipboard operation
disunity copied to clipboard

ToDo

Open Mactastic1-5 opened this issue 7 years ago • 15 comments

  • [ ] Add support for different asset bundle types (UnityFS, UnityBinary, UnityWeb)
  • [ ] Add support for different versions of Unity (2-5)
  • [ ] Add support for different types of assets (UnityFS, UnityBinary, UnityWeb)
  • [ ] Add support for deserializing objects
  • [ ] Add support for converting different serialized objects (FBX, OBJ, FSB, DDS, TEX, PVR, etc.)
  • [ ] Add error codes that give you actual information on what went wrong
  • [ ] Add GUI support
  • [ ] Update the Wiki to include more DisUnity and Unity documentation
  • [x] Update the README
  • [ ] Clean up the issues page; people keep posting non-issues
  • [ ] Fix the most common issues seen on the issues page
  • [ ] Change the way the commands and options are shown in CLI to deter confusion
  • [ ] Deprecate Java for Python

Mactastic1-5 avatar Mar 12 '17 03:03 Mactastic1-5

Indeed, there's so much to do here that it may be better to start over from scratch. There's actually some progress with the last point using Python, but I need a Unity project myself as a motivation to continue working on the code.

Thanks for responding to some of the other issues here, btw.

ata4 avatar Mar 12 '17 14:03 ata4

@ata4 You should upload the python port that you started to a python-port branch.

Mactastic1-5 avatar Mar 12 '17 14:03 Mactastic1-5

Yeah, I can do that. Might actually be better than a separate repository.

ata4 avatar Mar 12 '17 19:03 ata4

@ata4 What features does it have and what does it support thus far?

I think the goal should be to create a program that extracts every format/version and converts, if necessary, every format into a common file format without any problems. A GUI that is easy to use for users that aren't comfortable with CLI. I updated the list.

It would be better if you posted complete documentation on Unity formats/versions, so that I have a better understanding.

Mactastic1-5 avatar Mar 12 '17 19:03 Mactastic1-5

@ata4 Are these custom dependencies?

<!-- Dependencies from jitpack.io -->
        <dependency>
            <groupId>com.github.ata4</groupId>
            <artifactId>lzmajio</artifactId>
            <version>e6877e7e01</version>
        </dependency>
        <dependency>
            <groupId>com.github.ata4</groupId>
            <artifactId>ioutils</artifactId>
            <version>047e401d73</version>
        </dependency>
    </dependencies>

I forked your repository, I've been updating things that I can and I am writing a Wiki for it. I don't know how to commit as you can see, lol.

Edit: Nevermind, I figured it out.

Mactastic1-5 avatar Mar 13 '17 19:03 Mactastic1-5

@ata4 What features does it have and what does it support thus far?

I think it supports Unity 2.x up to 5.4, including deserialization. It can't extract anything right now, though.

I think the goal should be to create a program that extracts every format/version and converts, if necessary, every format into a common file format without any problems.

Which is just too complicated IMHO. For textures alone, there are 52 different formats and then supporting them from all Unity versions? Not to mention other asset types.

A GUI that is easy to use for users that aren't comfortable with CLI. I updated the list.

Also difficult, at least when it's supposed to be platform-independent. There's usually the choice between writing a GUI for each operating system or adding hundreds of megabytes of framework dependencies. I'm not a fan of both. A CLI runs everywhere at least.

It would be better if you posted complete documentation on Unity formats/versions, so that I have a better understanding.

I don't have a complete one, that's the problem. I've been working on updated versions of the wiki docs, but it gets more complicated with each major Unity version.

ata4 avatar Mar 13 '17 22:03 ata4

@ata4 How about JavaFX for the GUI? Have you looked at Unity Studio, it's a C# program though.

Mactastic1-5 avatar Mar 13 '17 23:03 Mactastic1-5

JavaFX won't work with Python, though. And yeah, I did take a look at Unity Studio, but wasn't quite happy with the compatibility last time I've checked it. Anyway, I have uploaded the current Python code to the branch python, for those who want to take a look at it. I'm not really happy with its current state, mostly because I've applied some old Java habits on the Python code, but I guess it's still cleaner than the Java version.

ata4 avatar Mar 19 '17 21:03 ata4

@ata4 It would work with Java. PyGUI framework for Python?

Mactastic1-5 avatar Mar 19 '17 21:03 Mactastic1-5

Maybe better do some refactoring? When I implementing extracting from 5+ bundles, i notice big amount of old Java syntax code (not used <?>), kinda tricky code with hacks and other problems. I don't know, maybe it is me too stupid, but, as for me, its reason for not trying contribute to this project.

GreenWizard2015 avatar Mar 22 '17 18:03 GreenWizard2015

I'm not sure that's fair. I think most of it was fairly clear, and I don't remember any untyped collections. (I do remember having to trace the CLI commands back and forth a few times, but that easy once I'd seen how it worked.) But the difficult part is understanding the individual unity resource formats and writing them back out in a more useful format, and if you can contribute that expertise I'm sure we'd help you with a patch. Or there's always the new Python branch to work on.

RupW avatar Mar 23 '17 00:03 RupW

@RupW The Python port seems better than the Java version.

Mactastic1-5 avatar Mar 23 '17 00:03 Mactastic1-5

The original code was just an experimental tool for my own use and I thought that it could be useful for others, which is why I have uploaded it here. But I wasn't really familiar with design patterns and all that stuff back then, so the code was pretty ugly. Most of it has been rewritten a few times already, but simply realized that Java isn't the right programming language for this task, that's why the Python version exists. But it's also something that an experienced Python programmer would call "ugly", I guess.

ata4 avatar Mar 23 '17 21:03 ata4

@ata4 Have you looked at Haxe?

Mactastic1-5 avatar Mar 25 '17 20:03 Mactastic1-5

@ata4 How did you figure out the format initially? The only other tool out there are some closed source ones. I would love to help on this project if there was some way or method you use to discover the format.

maritaria avatar Apr 18 '17 15:04 maritaria