Unity Project
Download the source from GitHub
README
unitytuts is just a repository for me to learn about Unity and how to setup a clean build pipeline for Unity projects.
== Roll-a-Ball tutorial
image:https://badges.herokuapp.com/travis/wiztigers/unitytuts?branch=master&env=project=%22Roll%20a%20Ball%22%20target=%22Linux%22&label=linux[link=https://travis-ci.org/wiztigers/unitytuts] image:https://badges.herokuapp.com/travis/wiztigers/unitytuts?branch=master&env=project=%22Roll%20a%20Ball%22%20target=%22Mac%22&label=osx[link=https://travis-ci.org/wiztigers/unitytuts] image:https://badges.herokuapp.com/travis/wiztigers/unitytuts?branch=master&env=project=%22Roll%20a%20Ball%22%20target=%22Windows%22&label=windows[link=https://travis-ci.org/wiztigers/unitytuts]
- Only commit the bare minimum number of files for Unity to recognize a folder as a Unity project.
Use https://www.gitignore.io[gitignore.io] to have an idea of what shouldn't be commited (YMMV).
In particular:
** one should commit
.metafiles: this is recommended by Unity. https://blog.forrestthewoods.com/managing-meta-files-in-unity-713166ee3d30#.35zjl0w5m[Here] is an explanation. + TL;DR: scenes reference.metafiles identifiers, so forgetting them breaks scenes. ** V$.slnand.csprojfiles, as long asLibrary,objandTempfolders are generated by Unity on build (https://unity3d.com/fr/learn/tutorials/topics/production/mastering-unity-project-folder-structure-version-control-systems[source]). - Unity uses a lot of binary files.
** As many of these live and may change during development, and as git doesn't properly manage binaries in its diffs,
precommit/prepull hooks should be used in conjunction with something like
git-lfs,git-annexorgit-fatas long as a separate repository for binaries (http://stackoverflow.com/questions/540535/managing-large-binary-files-with-git/29530784[directions]). ** To be more scm-friendly to boot, one can however easily force text format instead of binary format on Unity. I'm unsure about the impact on performance ; however, from a workflow point of view (be it considering a team of one or of many), http://answers.unity3d.com/questions/222281/asset-serialization-mixed-vs-force-text.html[versioning binary files does not provide a single reasonable advantage]. The following parameters should be set at the start of each new Unity project. + In Unity:Edit>Project Settings>Editor*** InVersion Controlsection, chooseVisible Meta Files*** InAsset Serializationsection, chooseForce Text - Recent Unity versions have a basic core installer as long as many additional target modules installers. These additional modules must be installed to be able to build for a specific target platform. See https://github.com/wiztigers/unitytuts/blob/master/tools/install.sh[install.sh] for additional information.
- A nice continuous integration system should be able to run concurrent build jobs, one for each target platform. This is done by the current project, using https://travis-ci.org/wiztigers/unitytuts[travis-ci]'s build matrix feature as long as https://github.com/exogen/badge-matrix[badge-matrix], which is used to display per-job/per-platform badges instead of just the one badge made available by travis-ci for general build status. + Each job does:
- install unity and the required modules, then
- build for its specific target platform, and finally
- archive the produced binaries so they can be delivered for a release (ie. git tag)
== Tanks! tutorial
image:https://badges.herokuapp.com/travis/wiztigers/unitytuts?branch=master&env=project=%22Tanks!%22%20target=%22Linux%22&label=linux[link=https://travis-ci.org/wiztigers/unitytuts] image:https://badges.herokuapp.com/travis/wiztigers/unitytuts?branch=master&env=project=%22Tanks!%22%20target=%22Mac%22&label=osx[link=https://travis-ci.org/wiztigers/unitytuts] image:https://badges.herokuapp.com/travis/wiztigers/unitytuts?branch=master&env=project=%22Tanks!%22%20target=%22Windows%22&label=windows[link=https://travis-ci.org/wiztigers/unitytuts]
Comments
No comments yet. Be the first!
Sign in to join the conversation
Sign In