Unitializr

Last updated: Sep 05, 2020 - package v1.7.0

Access

What is it?

Unitializr is an Open Source initializr for Unity. Unitializr allows you to configure and generate Unity projects.
As Unity adopted a more structured dependencies management system with the package manager in Unity 2018.2, Unitializr has been developed in the hope of controlling Unity project generation from pure configuration.

This project is unofficial, Unity has no official connection with this project.

How to use it

  1. Configure the name and unity version
  2. Configure the file structure by adding New Text file (Click on files to edit them with the integrated file editor if needed), loading file from your disk or use template files.
  3. Select your packages dependencies from the verified/preview/built-in referential or add a custom package.
  4. Eventually save your configuration as a template to reuse it later.
  5. Generate the ZIP of your project.
  6. Unzip your project in desired location.
  7. Now you can open your project from the Unity hub using the "Add" Button.

File templates

When creating a new file, you can use template files to have dynamic content, the result depends on their type :

  • Type EDITORVERSION : The file will be populated with the editor version configured in the project. If you have this file in /ProjectSettings you won't have warnings in Unity Hub
    Warning : with this file placed in /ProjectSettings, Unity will consider your project valid and will not update packages on start, so you're packages listing must be valid or you'll get errors in editor.
  • Type MANIFEST : The file will be populated from the project's packages configuration. Must be placed in /Packages.
  • Type URL : The file will be populated from the URL's content. Mainly made to be used with Git raw file URLs

There is no option to create custom URL file for the moment.

Disclaimers

The project has some limitations you should consider when using it :

  • Don't expect the exact same result from creating a project by Unitializr than from the Unity Hub.
    The templating system used by the Hub dynamically modifies new projects.
  • Due to the way Unitializr get Unity versions data (scrapping Unity's web documentation), the packages referential can be incomplete and some packages version are missing.
    If the package's version could not be defined, it is set to "0.0.0" so it still can be used and will be automatically updated by the editor.
  • The project structure only supports Text based files (.gitignore, readme, all .unity and .asset files, json, etc.). Images and binaries are currently not supported.
  • As the ZIP generation is made server-side (so that Unitializr can be used as a service), the project size is limited.
  • The project is currently hosted on Heroku free plan, which mean after few hours unused, the servers are put in sleep mode.
    So if you have an error loading the app, try a reload, maybe you're the one waking up the servers :)
  • This project is unofficial, Unity has no official connection with this project.

Documentation

You can access the projects and find their technical documentation in the GIT repositories

Contact

Will be happy to discuss any part of the project with you!