Skip to content

Commit 6bae5f2

Browse files
Update doc for building and downloads
Rework the main page now that builds are being published and to try to improve the instructions for building.
1 parent 4b34f53 commit 6bae5f2

File tree

1 file changed

+31
-29
lines changed

1 file changed

+31
-29
lines changed

README.md

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,35 +26,44 @@ The repository contains the following items:
2626
* UnityFileSystemTestData: the Unity project used to generate the test data.
2727
* TestCommon: a helper library used by the test projects.
2828

29-
## Getting the UnityFileSystemApi library
29+
## Downloads
3030

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.
3832

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.
4036

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.
4238

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
4740

48-
Note: Alternatively you can build with your favorite IDE. This was tested with Visual Studio and Rider on Windows and 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.
4942

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".
5144

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:
5346

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:
5648

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.
5867

5968
## Origins
6069

@@ -69,15 +78,8 @@ is extremely slow as it runs WebExtract and binary2text on all the AssetBundles
6978
has to parse very large text files. It can also easily fail because the syntax used by binary2text
7079
is not standard and can even be impossible to parse in some occasions.
7180

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.
7882

7983
## Disclaimer
8084

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

Comments
 (0)