-
Notifications
You must be signed in to change notification settings - Fork 48
Built in UI
The [UXF_Rig]
prefab contains all the functionality of UXF, including the included user interface. The UI allows researchers to setup the session prior to starting it. UXF can be used without a UI, if you want to initialise the session manually.
The UI itself is a child GameObject of [UXF_Rig]
and components of the UI can be customised in the attached ExperimentStartupController
component.
The settings selector system allows researchers to configure one or more set of parameters for use in the session. This could be things like the number of trials, some instructions text, the appearance of some stimuli, or any piece of information that your code can use to run the experiment.
The UI searches for files in the StreamingAssets folder in your Unity project or project or build. The files that match a custom string pattern (*.json
by default), populate the dropdown menu at the top of the UI. The researcher can then use the dropdown menu to select the file they wish to use. The files must contain valid json, this will then be deserialized into a Settings
object. These settings files can be added, removed or modified without changing any code, which speeds up iteration time.
After pressing the Start button on the UI, the settings will be stored in the Session
component, accessible in code via session.settings["key"]
. See the settings system page for more information.
The UI uses a concept of a "participant list", which is a .csv
file that stores basic information about participants. This system allows researchers to optionally pre-prepare all participant information beforehand. The UI buttons allow researchers to either select an existing participant list, or create an empty one. From there, the researcher will have the option to select a new participant, or one that already exists in the list. The participant information is then entered, and any changes made will be saved in the participant list.
The data points that the UI collects can be customised. For example, you can collect age, gender, or any other value such as the assigned group in your experiment. This is done via the ExperimentStartupController
component inspector. The participant ID is always collected as it is used in the file output.
After pressing the Start button on the UI, the participant's information will be stored in the Session
component as a Dictionary<string, object>
, accessible in code via session.participantDetails["key"]
.
Allows assigning a number to the session. This is useful if the same participant performs the task several times. Session number is used in the save directory and can be accessed from the Session
component as session.number
.
When the researcher presses the start button, the UI system collects all the information and uses it to initialise the Session
.
๐ง Core topics
- ๐ Background
- โจ UXF 2.0
- โ๏ธ Compatibility
- ๐ถ๏ธ Oculus Quest Setup
- ๐ญ Concepts
- ๐ ๏ธ Get started
- ๐ Examples
- ๐ฅ๏ธ Built-in UI
- ๐ Session generation
- โฐ Events
- ๐ Data collection
- โ๏ธ Collect custom data
- ๐ Custom Data Handler
- ๐ Remote Data Collection
- ๐๏ธ WebGL DynamoDB setup
- ๐ Processing DynamoDB CSVs
- ๐ซ HTTP Post Setup
- ๐ง Settings system
- ๐๐ฝ Tracker system
- ๐ Logging system
โ ๏ธ Common issues- ๐ผ๏ธ Multi-scene experiments
- ๐บ Videos
- ๐จโ๐ Full written tutorial
- ๐ฆ Asset links
- ๐จโ๐ซ Unity tutorial links
- ๐ Useful code snippets
- ๐ก Programming ideas
- ๐งฎ Example R processing