-
Notifications
You must be signed in to change notification settings - Fork 1
/
SettingsManager.cs
77 lines (66 loc) · 1.84 KB
/
SettingsManager.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using Pupil;
public class SettingsManager : MonoBehaviour {
[SerializeField]
private Slider _ipdSlider;
[SerializeField]
private PupilCameraSettings _settings;
private PupilCamera _camera;
private bool _minTest;
private string _testMessage;
[SerializeField]
private PupilInitializer _initializer;
[SerializeField]
private Text _text;
[SerializeField]
private LerpBetweenPoints _lerp;
[SerializeField]
private Button _finishButton;
[SerializeField]
private Canvas _canvas;
void Start() {
_testMessage = "Please adjust the slider until the ball is clearly visible.";
_text.text = _testMessage;
_canvas.worldCamera = GameObject.Find("Left").GetComponent<Camera>();
_minTest = false;
}
void Update() {
if (_minTest) {
_settings.SetMinDistanceIPD(_ipdSlider.value);
} else {
_settings.SetMaxDistance(LayerMask.GetMask("UI"));
_settings.SetMaxDistanceIPD(_ipdSlider.value);
}
}
public void NextTest() {
_minTest = !_minTest;
if (_minTest == false) {
_testMessage = "The ball will now move closer to you. Please adjust the slider until it's clearly visible.";
_text.text = _testMessage;
_lerp.ChangeTarget(new Vector3(0f, 1f, 4f));
ShowFinishButton();
}
}
public void ShowFinishButton() {
_finishButton.gameObject.SetActive(true);
}
public void FinishTests() {
_testMessage = "Calibration complete! Returning to the main scene...";
_text.text = _testMessage;
_initializer.SaveDataAsJson();
Invoke("LoadSceneZero", 5f);
}
public void SaveData() {
_initializer.SaveDataAsJson();
}
public void LoadSceneZero() {
SceneManager.LoadScene(0);
}
public void LoadSceneNext() {
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
}
}