// Handle initialization. void Start() { // Get the experiment data manager. experimentDataManager = GameObject.Find("ExperimentDataManager").GetComponent <ExperimentDataManager>(); continueButtonComponent = continueButton.GetComponent <Button>(); // Order the pages and define which ones should hide the continue button initially. orderedPages = new GameObject[] { initialInstructionsPage, longInstructionsPage, appearancePage }; hideButtonPage = new bool[] { true, true, false }; // Find the first active page and set the currentPageIndex. This is only necessary if the scene is set up incorrectly. // Guarantees that at most one page is open at the start. bool foundActive = false; // Indicates whether a first active page in the hierarchy has been found. for (int i = 0; i < orderedPages.Length; ++i) { GameObject page = orderedPages[i]; // If no active page has been found yet and this page is active == the first active page is found. if (!foundActive && page.activeSelf) { currentPageIndex = i; foundActive = true; } else if (page.activeSelf) // This page is active but not the first active one found. { page.SetActive(false); } } }
// Handle initialization. void Start() { // Get the experiment data manager. experimentDataManager = GameObject.Find("ExperimentDataManager").GetComponent <ExperimentDataManager>(); // Order the pages. orderedPages = new GameObject[] { participantDataPage1, participantDataPage2, participantDataPage3, additionalCommentsPage, completionCodePage }; // Find the first active page and set the currentPageIndex. This is only necessary if the scene is set up incorrectly. // Guarantees that at most one page is open at the start. bool foundActive = false; // Indicates whether a first active page in the hierarchy has been found. for (int i = 0; i < orderedPages.Length; ++i) { GameObject page = orderedPages[i]; // If no active page has been found yet and this page is active == the first active page is found. if (!foundActive && page.activeSelf) { currentPageIndex = i; foundActive = true; } else if (page.activeSelf) // This page is active but not the first active one found. { page.SetActive(false); } } }
public ExperimentData(ExperimentDataManager mgr) { this.fromMturk = mgr.fromMturk; this.completionCode = mgr.completionCode; this.browser = mgr.browser; this.participant = mgr.participant; this.appearance = mgr.appearance; this.comments = mgr.comments; this.trials = mgr.allCompletedTrials; }
// Handle experiment data manager instancing between scene loads. void Awake() { // If there is no instance, let this be the new instance, otherwise, destroy this object. if (instance == null) { instance = this; } else { Destroy(gameObject); return; } // If this object was set as the instance, make sure it is not destroyed on scene loads. DontDestroyOnLoad(gameObject); }
IEnumerator TimeActionsWithFirstSceneLoaded() { // Make sure that this script is executed after all the others. yield return(new WaitForEndOfFrame()); // Find all the objects required by this class. assetLoader = GameObject.Find("AssetLoader").GetComponent <AssetLoader>(); experimentDataManager = GameObject.Find("ExperimentDataManager").GetComponent <ExperimentDataManager>(); overlayManager = GameObject.Find("OverlayCanvas").GetComponent <OverlayManager>(); sharedVariableManager = GameObject.Find("SharedVariableManager").GetComponent <SharedVariableManager>(); robotViewText = GameObject.Find("RobotViewText").GetComponent <Text>(); // Set up list of robot colors. List <RobotColor> colors = new List <RobotColor>(); colors.Add(RobotColor.BLUE); colors.Add(RobotColor.RED); colors.Add(RobotColor.PURPLE); colors.Add(RobotColor.YELLOW); colors.Add(RobotColor.PINK); colors.Add(RobotColor.GREEN); colors.Add(RobotColor.BROWN); colors.Add(RobotColor.ORANGE); colors.Add(RobotColor.BLACK); colors.Add(RobotColor.SPECIAL); colors.Shuffle(); // Initialize trials list as empty. trials = new List <Trial>(); // Trial list construction. // Add trials. This is dependent on the experiment design. if (debugTrials) { // Add the trials. // trials.Add(new Trial(EnvironmentType.BASIC, RobotType.PR2, TrialType.AI)); // trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); // trials.Add(new Trial(EnvironmentType.NARROW, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); } else if (testingTrials) { trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); } else { // Add the trials. trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.PR2, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.AI)); trials.Add(new Trial(EnvironmentType.OPEN, RobotType.SOPHIA, TrialType.HUMAN)); } // Set colors. Colors are assigned randomly in a way, looped around for the number of trials. for (int i = 0; i < trials.Count; ++i) { trials[i].robotColor = colors[i % colors.Count]; } // Shuffle the trials. trials.Shuffle(); // Add the test trial to the front of the list (should always be first!). trials.Insert(0, new Trial()); // End trial list construction. // Load the trial environment. assetLoader.LoadEnvironment(trials[currentTrialNum].environmentType); // Display the first trial's loading screen. overlayManager.DisplayLoadingScreen(trials[currentTrialNum].trialType); // Subscribe the new scene actions to future scene loads. // Needs to be here in order to not perform NewSceneActions for the first trial. SceneManager.sceneLoaded += NewSceneActions; }
private void Start() { _experimentDataManager = GetComponent <ExperimentDataManager>(); GenerateRandomTimeStep(); }