Skip to content

ProjectStructure

Rainer Koschke edited this page May 4, 2023 · 6 revisions

Project Structure

This pages aims to provide an overview of the most important project files and where they are found:

/Assets/

Most directories in this directory are external plugins that are currently managed by git-lfs. Documentation for these plugins should be sought within that plugin's documentation.

The directories that are written by or managed by the SEE-developing people are explained below:

/Assets/Editor

Everything concerning built-in editors.

/Assets/Models

TODO

/Assets/Native

TODO

/Assets/SEE

The source code of SEE.

/Assets/Plugins

Plugins used in SEE.

/Assets/Parser

Parsers required to show source code in code windows within SEE.

/Assets/Resources

Resources like audio, video, fonts, prefabs, etc.

/Assets/SEETests

Tests for SEE that do not require UnityUI (editor-mode tests).

That separation is due to the CI/CD pipeline.

/Assets/SEEPlayModeTests

Tests for SEE that require UnityUI (play-mode tests).

/Assets/Scenes

The Unity scenes that we currently have.

More information here.

/Assets/StreamingAssets

Additional data that should go into a build such as the GXL files for the examples in the scenes.

/Assets/Trailer

Everything related to the SEE Trailer (a video on SEE).

(Further questions: Rainer Koschke.)

/Axivion/

Configuration files for the Axivion Dashboard.

(Further questions: Falko Galperin)

/Data/

Data from software analyses that are to be visualized by SEE.

Attention: large GXL-Files ( > 1 MB) should be compressed with the xz-Format. Further information here.

/GitScripts/

Scripts managing Git's behaviour in this project. These files are executed before each git commit.

See Workflow for more information.

/Packages/

Settings for the Unity Package Manager.

If you install a new package, the manifest file is changed and has to be committed (if you want to propagate the package installation).

/ProjectSettings/

Project information files (asset files and project version...)

/Tools/VsSEEExtension:

A plugin for Visual Studio (VS) so that SEE and VS can interact. Allows to show the source code of a game node selected in SEE in VS and vice versa.

/.gitattributes

Holds information about which files are managed by git lfs (large file storage).

/.gitignore

Holds regexes for the files that git should not handle.

/.lfsconfig

Git-LFS configuration files.

/README.md

The classic README that is shown at the landing page of a GitHub project.

/SEE.cs

The root file for SEEs C# project.

(should not be of any concern for bachelor project students.)

/generateCSProj.bat

This file generates csproj files (C# project files) to build the unity project (on Windows).

More information within the files comments.

/generateHook.bat & /generateHook.sh

These files copy the file run_all contained in /GitScripts/ to this projects git pre-commit hooks directory.

generateHook.bat is for Windows and generateHook.sh for unix-like systems.

This file should be executed after cloning the repository and before comitting anything.

(See Workflow for more information.)