Skip to content

Unity Project

Michael Zauchinger edited this page Apr 23, 2025 · 27 revisions

Contents

Folder Structure

In the main Assets folder of the project there is a sub-folder called Dataskop which includes everything that was created during the research project.

Folders outside the Dataskop folder contain third party packages, resources and SDKs that are used by the project, for example Mapbox and Unity packages.

World Scene Structure

The scene titled "World" is the main scene of the application and has GameObjects already in the scene.

Directional Light

The default Unity light.

AR Session / AR Session Origin

The Augmented Reality specific GameObjects that make the app be able to process AR features. It also contains the AR Camera which also handles movement and and raycasts in the 3D scene.

AdditionalCameras

Contains cameras used for the minimap and overview map displayed in the user interface.

LocationProviderFactory

Handles real world location based functions using the devices GPS. Also used to spoof GPS data to be able to use it in the editor without deploying to a phone.

Map

A Mapbox specific object that handles the display and rasterization of real world map. Also handles conversion between Latitude / Longitued / Altitude and x/y/z in Unity space. More info on that can be found in the Mapbox Documentation

UserMapIcon / DevicesNearbyRadius

Map / Minimap specific objects that get displayed only on those. The user icon and a radius display, which highlights devices only in the radius around the user.

Calibrator

The calibrations process relies heavily on the device telemetry.

This GameObject handles the calibration process that a user has to go through after each start of the application. It contains steps to find North (North Alignment of the World), the ground to place elements on a fixed offset from the ground and a room scan to make the Augmented Reality more stable and less prone to drifting.

DataManager

Handles fetching and persisting data from the Dataskop Backend.

DataPointsManager

Handles spawning, modifying and deleting DataPoints in the world.

DataPointsContainer

Spawned DataPoints will be put as childs in this container.

DataAttributeManager

Keeps track and handles changes of attributes the user selects.

VisualizationRepo

Contains all available Visualization prefabs.

SettingsManager

Manages Player Preferences that can persist through application exits.

UserInterface

UI-Toolkit based interface. Contains all elements the user has access to in the interface.

This includes:

  • Notifications
  • Settings
  • Information Card
  • Calibration
  • Visualization & Attribute Selector
  • Minimap
  • History Slider

The User Interface also handles the distinction between UI and World touches.

Prefabs / Scriptable Objects

The project makes use of Prefabs to spawn and change values of pre-configured templates.

DataPoint

The DataPoint is the base object of a device spawned at a point (Latitude/Longitude) in world space. It keeps track of the world position and holds its sensor data and visualization.

Visualizations

Visualization Prefabs contain information on how a visualization looks and what it does with the data it receives from the data point. There are currently three basic visualizations implemented and one multivariate visualization which can combine multiple sensors from one device.

To implement new visualizations that has your own functionality and want to make use of the current features, refer to the 'How do I create a new visualization?' guide.

Bar

A fully 3D visualization with a fillable bar. Displays its Value, Min/Max Values of the measurement definition, Name and Date of the measurement. With History View enabled the visualization object gets rotated.

Dot

A 2D Sprite displayed in the world with the value on it. It displays the Name, Value and the Date of the measurement.

Bubble

A 2D Sprite similar to the Dot Visualization, but the area of the sprite is determined by the value that lies between the min and maximum value. It displays the Name, Value and the Date of the measurement.

Radial Bar

A 2D sprite that includes all available attributes with their latest measurement and displays it in a radial bar around the center. It is possible to switch through the attributes by swiping left or right and see information about each value on the display. It displays the current color-coded attribute, its name, min/max range, the latest value and its date. It also has indicators for left and right swipe interactions.

The visualization also supports min/max values that go into negative values.

Clone this wiki locally