Skip to content

Overview

Experiment class is the major part of this framework. It is a Unity component, that can be attached to an empty object, but it is usualy taken care of with ExperimentManager. It has a certain enforced flow that you can extend. This class is responsible for logging experiment state changes and events, keeping clear structure of function calls, keeps state of trials nad expeirment itself etc.

Experiment

Variables

Variable Purpose
Name Name of the experiment. important for serialisation
TrialNumber Tracks the trial number.
ExperimentNumber In case we are runnign multiple experiments at the same time.
ExperimentState Tracks the state of the expeirment

Events

Event Purpose
ExpeirmentEventSent Sends info about event being sent. Mostly for logging purposes.
TrialStateChanged Sends info about change in trial state
TrialEventSent Sends info for logging purposes.
MessageSent Generic message event to logger.

Functions

Function Purpose
StartExperiment Starts the expeirment if possible.
TrialSetNext Sets the trial to the next one if possible.
ForceNextTrial Forces next trial.
ForceSetTrial Forces the trial to be set to designated number
ForceFinishTrial Finishes the trial in any state
FinishExperiment Finishes the expeirment immediately
AddSettings Override to allow adding different settings to implemetned expeiremnts
ExperimentHeaderLog Logs the speicific header for each expeirment

Experiment Settings

Class ExpeirmentSettings allow custom parameters for each expeirment. It allows serialisation and deserialisation and takes variable parameters according to your design.

Experiment Results

Class ExperimentResults is designed to take

Attributes

the class has two custom attributes [TestData] and [ResultData] to allow sequential and separate parsing. Just tag everything you want in your results as [ResultData] nad all the raw data as [TestData]. Unmarked values are not parsed in the Save() function.