You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+31-29Lines changed: 31 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,35 +26,44 @@ The repository contains the following items:
26
26
* UnityFileSystemTestData: the Unity project used to generate the test data.
27
27
* TestCommon: a helper library used by the test projects.
28
28
29
-
## Getting the UnityFileSystemApi library
29
+
## Downloads
30
30
31
-
The UnityFileSystemApi library is distributed in the Tools folder of the Unity editor (starting in
32
-
version 2022.1.0a14). For convenience this repository includes a copy of the Unity 2022 Windows, Mac and Linux builds of the
33
-
library, in the `UnityFileSystem/` directory. The library is somewhat backward compatible,
34
-
which means that it can read data files generated by any previous version of
35
-
Unity. Ideally, you should copy UnityFileSystemApi (.dll/.dylib) from Unity Editor install path
36
-
`Data/Tools/` subfolder to `UnityDataTool/UnityFileSystem/` of an Engine version that produced
37
-
serialized data you want to analyze.
31
+
Prebuilt Windows and Mac builds are available in the "Actions" tab. Each update to the main branch triggers a new build.
38
32
39
-
## How to build
33
+
To use:
34
+
1. Download and unzip the build for your platform.
35
+
2. Run UnityDataTool from the extracted location, or add it to your system PATH.
40
36
41
-
Currently, we do not host builds of UnityDataTools, you will need to clone or download this repo and build it yourself.
37
+
Refer to the [commit history](https://github.com/Unity-Technologies/UnityDataTools/commits/main/)to see the recent improvements to the tool.
42
38
43
-
1) The projects in this solution require the [.NET 9.0 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/9.0).
44
-
2) Copy `UnityFileSystemApi` library from your Unity Editor installation, in
45
-
`{UnityEditor}/Data/Tools/` to `UnityDataTool/UnityFileSystem/`. This step is typically optional, because a previously built version of the library is included in the repo that can read the output from most Unity Versions.
46
-
3) Build using `dotnet build -c Release`
39
+
## Getting UnityFileSystemApi
47
40
48
-
Note: Alternatively you can build with your favorite IDE. This was tested with Visual Studio and Rider on Windowsand Rider on Mac.
41
+
UnityFileSystemApi is distributed in the Tools folder of the Unity Editor (from version 2022.1.0a14). The UnityDataTools repository includes a Windows, Mac, and Linux copy of the library in the `UnityFileSystem/` directory.
49
42
50
-
See the documentation page for the [command line tool](./UnityDataTool/README.md) for information about how to run the tool after you have built it.
43
+
The library is backward compatible and can read data files from most Unity versions, so typically the version that is provided with UnityDataTools can be used "as is".
51
44
52
-
## What is the purpose of the UnityFileSystemApi native library?
45
+
To analyze data using the library from a specific version of the Unity Editor, copy the appropriate UnityFileSystemApi file from your Unity Editor installation (`{UnityEditor}/Data/Tools/`) to `UnityDataTool/UnityFileSystem/` prior to building:
53
46
54
-
The purpose of the UnityFileSystemApi is to expose the functionalities of the WebExtract and
55
-
binary2text tools, but in a more flexible way.
47
+
The file name is as follows:
56
48
57
-
To better understand the files and data formats that the Unity supports in the runtime see [this topic](./Documentation/unity-content-format.md).
49
+
- Windows: `UnityFileSystemApi.dll`
50
+
- Mac: `UnityFileSystemApi.dylib`
51
+
- Linux: `UnityFileSystemApi.so`
52
+
53
+
## How to Build
54
+
55
+
1. Clone or download this repository.
56
+
2. Install the [.NET 9.0 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/9.0).
57
+
3. (Optional) Overwrite the checked in version of the UnityFileSystemApi library with one from your Unity Editor installation, as described above.
58
+
4. Build using `dotnet build -c Release` or your preferred IDE (tested with Visual Studio and Rider on Windows/Mac).
59
+
60
+
On Windows, the executable is written to `UnityDataTool\bin\Release\net9.0`. Add this location to your system PATH for convenient access.
61
+
62
+
See the [command-line tool documentation](./UnityDataTool/README.md) for usage instructions.
63
+
64
+
## Purpose of UnityFileSystemApi
65
+
66
+
UnityFileSystemApi exposes the core functionality of WebExtract and binary2text to open and read the Unity Archive and Serialized File formats, exposed as a flexible, performant library. It enables custom tools for binary2text-like output and efficient SQLite database generation.
58
67
59
68
## Origins
60
69
@@ -69,15 +78,8 @@ is extremely slow as it runs WebExtract and binary2text on all the AssetBundles
69
78
has to parse very large text files. It can also easily fail because the syntax used by binary2text
70
79
is not standard and can even be impossible to parse in some occasions.
71
80
72
-
To address those problems [@faelenor](https://www.github.com/faelenor) established this UnityDataTools
73
-
repository and the UnityFileSystemApi library was created within Unity, to replace the usage of WebExtract and
74
-
binary2text functionalities. With the library, it becomes very easy to create a binary2text-like tool
75
-
that can output the data in any format, as well as the fast and simpler code for generating the SQLite output.
76
-
77
-
This tool continues to be useful in recent Unity versions, for example Unity 6.
81
+
UnityDataTools and UnityFileSystemApi were created to overcome these issues, providing fast, reliable access to Unity data files and enabling advanced analysis.
78
82
79
83
## Disclaimer
80
84
81
-
This project is provided on an "as-is" basis and is not officially supported by Unity. It is an
82
-
experimental tool provided as an example of what can be done using the UnityFileSystemApi. You can
83
-
report bugs and submit pull requests, but there is no guarantee that they will be addressed.
85
+
This project is provided on an "as-is" basis and is not officially supported by Unity. It is an experimental tool and example of UnityFileSystemApi usage. Bug reports and pull requests are welcome, but support is not guaranteed.
0 commit comments