// void OnDestroy(){ // pupilTracker.StopFramePublishing (); // pupilTracker.isOperatorMonitor = false; // PupilTools.Settings.currentCamera.targetDisplay = MainCameraTargetDisplay; // } void Awake() { pupilTracker = PupilGazeTracker.Instance; pupilSettings = pupilTracker.Settings; PupilTools.Settings.currentCamera.SetReplacementShader(CameraShader, null); _Instance = this; }
public static void AutoRunLayout() { PupilSettings pupilSettings = PupilSettings.Instance; ////////////////////////////TOGGLE AUTO MODE//////////////////////////// GUI.enabled = !Application.isPlaying; PupilTools.Connection.isAutorun = GUILayout.Toggle(PupilTools.Connection.isAutorun, "Auto-connect to Pupil", "Button"); GUI.enabled = Application.isPlaying; if (!PupilTools.Connection.isAutorun && Application.isPlaying) { GUILayout.BeginHorizontal(); GUI.enabled = !PupilTools.IsConnected; if (GUILayout.Button("Start")) { PupilGazeTracker.Instance.RunConnect(); } GUI.enabled = PupilTools.IsConnected; if (GUILayout.Button("Stop")) { PupilGazeTracker.Instance.CloseShop(); } GUILayout.EndHorizontal(); } GUI.enabled = true; ////////////////////////////TOGGLE AUTO MODE//////////////////////////// }
void Start() { Settings = PupilSettings.Instance; if (PupilGazeTracker._Instance == null) { PupilGazeTracker._Instance = this; } #if !UNITY_WSA PupilData.calculateMovingAverage = false; #endif PupilGazeTracker.Instance.ProjectName = Application.productName; PupilTools.IsConnected = false; PupilTools.IsIdle = true; var relativeRightEyePosition = UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.RightEye) - UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.CenterEye); PupilTools.Calibration.rightEyeTranslation = new float[] { relativeRightEyePosition.z *PupilSettings.PupilUnitScalingFactor, 0, 0 }; var relativeLeftEyePosition = UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.LeftEye) - UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.CenterEye); PupilTools.Calibration.leftEyeTranslation = new float[] { relativeLeftEyePosition.z *PupilSettings.PupilUnitScalingFactor, 0, 0 }; #if !UNITY_WSA RunConnect(); #endif }
void Start() { Settings = PupilSettings.Instance; if (PupilGazeTracker._Instance == null) { PupilGazeTracker._Instance = this; } #if !UNITY_WSA PupilData.calculateMovingAverage = false; #endif PupilGazeTracker.Instance.ProjectName = Application.productName; PupilTools.IsConnected = false; PupilTools.IsIdle = true; PupilTools.Calibration.rightEyeTranslation = new float[] { 0, 0, 0 }; PupilTools.Calibration.leftEyeTranslation = new float[] { 0, 0, 0 }; #if !UNITY_WSA RunConnect(); #endif }
// Use this for initialization void Start() { //PupilSettings.Instance.currentCamera = Camera.main; settings = PupilSettings.Instance; if (GazePointLocation._Instance == null) { GazePointLocation._Instance = this; } var relativeRightEyePosition = UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.RightEye) - UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.CenterEye); PupilTools.Calibration.rightEyeTranslation = new float[] { relativeRightEyePosition.z *PupilSettings.PupilUnitScalingFactor, 0, 0 }; var relativeLeftEyePosition = UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.LeftEye) - UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.CenterEye); PupilTools.Calibration.leftEyeTranslation = new float[] { relativeLeftEyePosition.z *PupilSettings.PupilUnitScalingFactor, 0, 0 }; lEye = new PupilMarker("LeftEye", PupilSettings.leftEyeColor); rEye = new PupilMarker("RightEye", PupilSettings.rightEyeColor); gaze = new PupilMarker("Gaze", Color.yellow); marker = new PupilMarker("Marker", Color.red); print(rEye.name + " pos : " + rEye.position); print(lEye.name + " pos : " + lEye.position); print(gaze.name + " pos : " + gaze.position); print(marker.name + " pos : " + marker.position); RunConnect(); /*PupilTools.IsGazing = true; * PupilTools.SubscribeTo("gaze");*/ }
// void OnDestroy(){ // pupilTracker.StopFramePublishing (); // pupilTracker.isOperatorMonitor = false; // Camera.main.targetDisplay = MainCameraTargetDisplay; // } void Awake() { pupilTracker = PupilGazeTracker.Instance; pupilSettings = pupilTracker.Settings; Camera.main.SetReplacementShader(CameraShader, null); _Instance = this; }
public static void SavePupilSettings(ref PupilSettings pupilSettings) { #if UNITY_EDITOR AssetDatabase.Refresh(); EditorUtility.SetDirty(pupilSettings); AssetDatabase.SaveAssets(); #endif }
void Start() { // print ("Start of pupil gaze tracker"); Settings = PupilSettings.Instance; string str = PupilConversions.ReadStringFromFile("camera_intrinsics"); PupilConversions.ReadCalibrationData(str, ref PupilData.CalibrationData); Settings.framePublishing.StreamCameraImages = false; if (Settings.framePublishing.StreamCameraImages) { Settings.framePublishing.InitializeFramePublishing(); } if (PupilGazeTracker._Instance == null) { PupilGazeTracker._Instance = this; } PupilData.calculateMovingAverage = true; //make sure that if the toggles are on it functions as the toggle requires it if (isOperatorMonitor && OnOperatorMonitor == null) { OperatorMonitor.Instantiate(); } //OnOperatorMonitor += DrawOperatorMonitor; if (Settings.debugView.active) { debugInstance.StartCalibrationDebugView(); } PupilGazeTracker.Instance.ProjectName = Application.productName; Settings.connection.isConnected = false; Settings.DataProcessState = PupilSettings.EStatus.Idle; var relativeRightEyePosition = UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.RightEye) - UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.CenterEye); Settings.calibration.rightEyeTranslation = new float[] { relativeRightEyePosition.z *PupilSettings.PupilUnitScalingFactor, 0, 0 }; var relativeLeftEyePosition = UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.LeftEye) - UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.CenterEye); Settings.calibration.leftEyeTranslation = new float[] { relativeLeftEyePosition.z *PupilSettings.PupilUnitScalingFactor, 0, 0 }; #if !UNITY_WSA if (Settings.connection.isAutorun) { RunConnect(); } #else RunConnect(); #endif }
public static void AutoRunLayout() { PupilSettings pupilSettings = PupilTools.Settings; ////////////////////////////TOGGLE AUTO MODE//////////////////////////// PupilTools.Settings.connection.isAutorun = GUILayout.Toggle(PupilTools.Settings.connection.isAutorun, "Autorun Pupil Service", "Button"); if (!PupilTools.Settings.connection.isAutorun && Application.isPlaying) { GUILayout.BeginHorizontal(); if (GUILayout.Button("Start")) { Debug.Log("start button before connect"); PupilTools.Connect(); Debug.Log("start button after connect"); // if (PupilTools.Settings.connection.isLocal) // PupilTools.RunServiceAtPath (); // // // PupilDataReceiver.Instance.StartCoroutine (PupilDataReceiver.Instance.Connect (retry: true, retryDelay: 5f)); // if (PupilTools.Settings.connection.isLocal) { // // PupilTools.RunServiceAtPath (); // PupilDataReceiver.Instance.StartCoroutine (PupilDataReceiver.Instance.Connect (retry: true, retryDelay: 5f)); // // } else { // // PupilDataReceiver.Instance.StartCoroutine (PupilDataReceiver.Instance.Connect (retry: true, retryDelay: 5f)); // // } } if (GUILayout.Button("Stop")) { PupilTools.StopEyeProcesses(); } GUILayout.EndHorizontal(); } ////////////////////////////TOGGLE AUTO MODE//////////////////////////// }
void Start() { // print ("Start of pupil gaze tracker"); Settings = PupilTools.Settings; string str = PupilConversions.ReadStringFromFile("camera_intrinsics"); PupilConversions.ReadCalibrationData(str, ref PupilData.CalibrationData); Settings.framePublishing.StreamCameraImages = false; if (Settings.framePublishing.StreamCameraImages) { Settings.framePublishing.InitializeFramePublishing(); } if (PupilGazeTracker._Instance == null) { PupilGazeTracker._Instance = this; } PupilData.calculateMovingAverage = true; //make sure that if the toggles are on it functions as the toggle requires it if (isOperatorMonitor && OnOperatorMonitor == null) { OperatorMonitor.Instantiate(); } //OnOperatorMonitor += DrawOperatorMonitor; if (Settings.debugView.active) { debugInstance.StartCalibrationDebugView(); } PupilGazeTracker.Instance.ProjectName = Application.productName; Settings.connection.isConnected = false; Settings.dataProcess.state = PupilSettings.EStatus.Idle; if (Settings.connection.isAutorun) { RunConnect(); } }
public override void OnInspectorGUI() { if (pupilTracker == null) { // Debug.Log ("fos"); pupilTracker = (PupilGazeTracker)target; // pupilTracker.AdjustPath (); PupilTools.WantRepaint += this.Repaint; if (pupilTracker.Settings == null) { pupilTracker.Settings = Resources.Load <PupilSettings>("PupilSettings"); pupilSettings = pupilTracker.Settings; } else { pupilSettings = pupilTracker.Settings; } tempServerIP = PupilTools.Connection.IP; if (pupilTracker.DrawMenu == null) { switch (pupilSettings.customGUIVariables.tabs.mainTab) { case 0: ////////MAIN MENU//////// pupilTracker.DrawMenu = null; pupilTracker.DrawMenu += DrawMainMenu; break; case 1: ////////SETTINGS//////// pupilTracker.DrawMenu = null; pupilTracker.DrawMenu += DrawSettings; break; } } } GUILayout.Space(20); ////////LABEL WITH STYLE//////// System.Object logo = Resources.Load("pupil_labs_logotype") as Texture; GUILayout.Label(logo as Texture, pupilSettings.GUIStyles[0]); ////////LABEL WITH STYLE//////// GUILayout.Space(50); ////////DRAW TAB MENU SYSTEM//////// EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); //////////////////////////////////////STATUS FIELD////////////////////////////////////// if (PupilTools.IsConnected) { GUI.color = Color.green; if (PupilTools.Connection.isLocal) { GUILayout.Label("localHost ( Connected )", pupilSettings.GUIStyles[1]); } else { GUILayout.Label("remote " + PupilTools.Connection.IP + " ( Connected )", pupilSettings.GUIStyles[1]); } } else { if (PupilTools.Connection.isLocal) { GUILayout.Label("localHost ( Not Connected )", pupilSettings.GUIStyles[1]); } else { GUILayout.Label("remote " + PupilTools.Connection.IP + " ( Not Connected )", pupilSettings.GUIStyles[1]); } } GUI.color = Color.white; Texture2D eyeIcon = Resources.Load("eye") as Texture2D; if (PupilTools.eyeProcess0) { GUI.color = Color.green; } else { GUI.color = Color.gray; } GUILayout.Label(eyeIcon as Texture2D, pupilSettings.GUIStyles[2], GUILayout.Width(20), GUILayout.Height(20)); GUILayout.Space(5); if (PupilTools.eyeProcess1) { GUI.color = Color.green; } else { GUI.color = Color.gray; } GUILayout.Label(eyeIcon as Texture2D, pupilSettings.GUIStyles[2], GUILayout.Width(20), GUILayout.Height(20)); GUI.color = Color.white; EditorGUILayout.EndHorizontal(); //////////////////////////////////////STATUS FIELD\////////////////////////////////////// //////////////////////////////////////DEVELOPER MODE TOGGLE////////////////////////////////////// GUILayout.BeginHorizontal();////////////////////HORIZONTAL//////////////////// GUI.skin.button.fontSize = 9; pupilSettings.customGUIVariables.bools.isAdvanced = GUILayout.Toggle(pupilSettings.customGUIVariables.bools.isAdvanced, "developer mode", "Button", GUILayout.Width(90)); //GUI.skin.button.fontSize = 13; GUI.skin.button.fontSize = 12; GUILayout.EndHorizontal(); ////////////////////HORIZONTAL//////////////////// //////////////////////////////////////DEVELOPER MODE TOGGLE\////////////////////////////////////// //base.OnInspectorGUI (); GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(1)); //Separator Line pupilSettings.customGUIVariables.tabs.mainTab = GUILayout.Toolbar(pupilSettings.customGUIVariables.tabs.mainTab, new string[] { "Main", "Settings" }, GUILayout.Height(35)); GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(1)); //Separator Line if (EditorGUI.EndChangeCheck()) { //I delegates are used to assign the relevant menu to be drawn. This way I can fire off something on tab change. switch (pupilSettings.customGUIVariables.tabs.mainTab) { case 0: ////////MAIN MENU//////// pupilTracker.DrawMenu = null; pupilTracker.DrawMenu += DrawMainMenu; break; case 1: ////////SETTINGS//////// pupilTracker.DrawMenu = null; pupilTracker.DrawMenu += DrawSettings; break; } } if (pupilTracker.DrawMenu != null) { pupilTracker.DrawMenu(); } ////////DRAW TAB MENU SYSTEM//////// GUILayout.Space(50); GUI.skin = null; }
private void DrawSettings() { PupilSettings pupilSettings = PupilSettings.Instance; ////////////////////////////CONNECTION MODE//////////////////////////// if (PupilTools.IsCalibrating) { GUI.enabled = false; } GUILayout.Space(4); GUILayout.Label("Connection", pupilSettings.GUIStyles[3]); GUILayout.Space(4); EditorGUI.BeginChangeCheck(); PupilTools.Connection.isLocal = Convert.ToBoolean(GUILayout.Toolbar(Convert.ToInt32(PupilTools.Connection.isLocal), new string[] { "Remote", "Local" }, GUILayout.Height(30), GUILayout.MinWidth(25))); GUI.color = Color.white; if (EditorGUI.EndChangeCheck()) { if (PupilTools.Connection.isLocal) { tempServerIP = PupilTools.Connection.IP; PupilTools.Connection.IP = "127.0.0.1"; } else { PupilTools.Connection.IP = tempServerIP; } } //ADVANCED SETTING if (pupilSettings.customGUIVariables.bools.isAdvanced) { ////////////////////////////SERVICE PORT//////////////////////////// /// GUILayout.BeginHorizontal(); //---------HORIZONTAL GROUP---------// // GUILayout.Label("Service Port : ", pupilSettings.GUIStyles[3], GUILayout.MinWidth(50)); PupilTools.Connection.PORT = EditorGUILayout.IntField(PupilTools.Connection.PORT, pupilSettings.GUIStyles[4], GUILayout.MinWidth(100), GUILayout.Height(22)); // GUILayout.EndHorizontal();//---------HORIZONTAL GROUP\---------// /// ////////////////////////////SERVICE PORT\//////////////////////////// base.OnInspectorGUI(); GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(1));//Separator Line } //ADVANCED SETTING\ //---------REMOTE CONNECTION MODE---------// if (!PupilTools.Connection.isLocal) { GUILayout.Space(5); ////////////////////////////SERVER IP ADDRESS//////////////////////////// /// GUILayout.BeginHorizontal(); //---------HORIZONTAL GROUP---------// // GUILayout.Label("IP : ", pupilSettings.GUIStyles[5], GUILayout.MinWidth(50)); // PupilTools.Connection.IP = EditorGUILayout.TextArea(PupilTools.Connection.IP, pupilSettings.GUIStyles[4], GUILayout.MinWidth(50), GUILayout.Height(22)); if (GUILayout.Button("Default")) { PupilTools.Connection.IP = "127.0.0.1"; Repaint(); GUI.FocusControl(""); } // GUILayout.EndHorizontal();//---------HORIZONTAL GROUP\---------// /// ////////////////////////////SERVER IP ADDRESS\//////////////////////////// } //---------REMOTE CONNECTION MODE\---------// GUI.enabled = true; GUILayout.Space(4); GUILayout.Label("Recording", pupilSettings.GUIStyles[3]); GUILayout.Space(4); GUILayout.BeginHorizontal(); PupilSettings.Instance.recorder.resolution = (FFmpegOut.FFmpegPipe.Resolution)EditorGUILayout.EnumPopup(PupilSettings.Instance.recorder.resolution); PupilSettings.Instance.recorder.codec = (FFmpegOut.FFmpegPipe.Codec)EditorGUILayout.EnumPopup(PupilSettings.Instance.recorder.codec);// GUILayout.Toolbar (pupilTracker.Codec, new string[] { GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); PupilSettings.Instance.recorder.isCustomPath = GUILayout.Toggle(PupilSettings.Instance.recorder.isCustomPath, "CustomPath", "Button", GUILayout.Width(90)); if (EditorGUI.EndChangeCheck()) { if (PupilSettings.Instance.recorder.isCustomPath) { PupilSettings.Instance.recorder.filePath = EditorUtility.OpenFolderPanel("Select the output folder", PupilSettings.Instance.recorder.filePath, ""); } } if (PupilSettings.Instance.recorder.isCustomPath) { GUIStyle centeredStyle = new GUIStyle(GUI.skin.textField); centeredStyle.alignment = TextAnchor.MiddleCenter; centeredStyle.margin = new RectOffset(0, 0, 3, 0); centeredStyle.fixedHeight = 20; PupilSettings.Instance.recorder.filePath = GUILayout.TextField(PupilSettings.Instance.recorder.filePath, centeredStyle); if (GUILayout.Button("Browse", GUILayout.Width(60))) { PupilSettings.Instance.recorder.filePath = EditorUtility.OpenFolderPanel("Select the output folder", PupilSettings.Instance.recorder.filePath, ""); } } GUILayout.EndHorizontal(); GUILayout.Space(10); }
private void DrawSettings() { PupilSettings pupilSettings = PupilTools.Settings; GUILayout.Space(10); // test for changes in exposed values EditorGUI.BeginChangeCheck(); pupilTracker.SettingsTab = GUILayout.Toolbar(pupilTracker.SettingsTab, new string[] { "pupil app", "calibration", "recording" }, GUILayout.Height(30)); ////////INPUT FIELDS//////// switch (pupilTracker.SettingsTab) { case 0: //PUPIL APP if (PupilTools.Settings.dataProcess.state == PupilSettings.EStatus.Calibration) { GUI.enabled = false; } GUILayout.Space(10); AutoRunLayout(); GUILayout.Space(20); ////////////////////////////CONNECTION MODE//////////////////////////// EditorGUI.BeginChangeCheck(); //GUI.color = new Color (.7f, .7f, .7f, 1f); PupilTools.Settings.connection.isLocal = Convert.ToBoolean(GUILayout.Toolbar(Convert.ToInt32(PupilTools.Settings.connection.isLocal), new string[] { "Remote", "Local" }, GUILayout.Height(30), GUILayout.MinWidth(25))); //pupilTracker.customInspector.connectionMode = GUILayout.Toolbar (pupilTracker.customInspector.connectionMode, new string[]{ "Local", "Remote" }, GUILayout.Height (30), GUILayout.MinWidth (25)); GUI.color = Color.white; if (EditorGUI.EndChangeCheck()) { if (PupilTools.Settings.connection.isLocal) { tempServerIP = PupilTools.Settings.connection.IP; PupilTools.Settings.connection.IP = "127.0.0.1"; } else { PupilTools.Settings.connection.IP = tempServerIP; } } ////////////////////////////CONNECTION MODE//////////////////////////// GUILayout.Space(5); if (PupilTools.Settings.connection.isLocal) { //LOCAL CONNECTION MODE// ////////////////////////////PUPIL APP PATH//////////////////////////// GUILayout.BeginHorizontal(); GUILayout.Label("path : ", pupilSettings.GUIStyles[5], GUILayout.MinWidth(50)); PupilTools.Settings.pupilServiceApp.servicePath = EditorGUILayout.TextArea(PupilTools.Settings.pupilServiceApp.servicePath, pupilSettings.GUIStyles[6], GUILayout.MinWidth(100), GUILayout.Height(22)); if (GUILayout.Button("Browse")) { PupilTools.Settings.pupilServiceApp.servicePath = EditorUtility.OpenFilePanel("Select Pupil service application file", PupilTools.Settings.pupilServiceApp.servicePath, "exe"); } GUILayout.EndHorizontal(); ////////////////////////////PUPIL APP PATH//////////////////////////// } if (pupilSettings.customGUIVariables.bools.isAdvanced) { //ADVANCED SETTING ////////////////////////////SERVICE PORT//////////////////////////// /// GUILayout.BeginHorizontal(); //---------HORIZONTAL GROUP---------// // GUILayout.Label("Service Port : ", pupilSettings.GUIStyles[3], GUILayout.MinWidth(50)); PupilTools.Settings.connection.PORT = EditorGUILayout.IntField(PupilTools.Settings.connection.PORT, pupilSettings.GUIStyles[4], GUILayout.MinWidth(100), GUILayout.Height(22)); // GUILayout.EndHorizontal(); //---------HORIZONTAL GROUP\---------// /// ////////////////////////////SERVICE PORT\//////////////////////////// base.OnInspectorGUI(); GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(1)); //Separator Line } //ADVANCED SETTING\ if (!PupilTools.Settings.connection.isLocal) { //---------REMOTE CONNECTION MODE---------// GUILayout.Space(5); ////////////////////////////SERVER IP ADDRESS//////////////////////////// /// GUILayout.BeginHorizontal(); //---------HORIZONTAL GROUP---------// // GUILayout.Label("IP : ", pupilSettings.GUIStyles[5], GUILayout.MinWidth(50)); // // pupilTracker.Settings = (PupilSettings)EditorGUILayout.ObjectField (pupilTracker.Settings); // pupilTracker.Settings.a = EditorGUILayout.TextArea (pupilTracker.Settings.a, pupilTracker.Styles[8], GUILayout.MinWidth (50), GUILayout.Height (22)); PupilTools.Settings.connection.IP = EditorGUILayout.TextArea(PupilTools.Settings.connection.IP, pupilSettings.GUIStyles[4], GUILayout.MinWidth(50), GUILayout.Height(22)); if (GUILayout.Button("Default")) { PupilTools.Settings.connection.IP = "127.0.0.1"; Repaint(); GUI.FocusControl(""); } // GUI.enabled = true; // GUILayout.EndHorizontal(); //---------HORIZONTAL GROUP\---------// /// ////////////////////////////SERVER IP ADDRESS\//////////////////////////// GUI.enabled = true; } //---------REMOTE CONNECTION MODE\---------// break; case 1: //CALIBRATION GUILayout.Space(20); ////////////////////////////2D-3D TOGGLE BAR//////////////////////////// EditorGUI.BeginChangeCheck(); var calibrationMode = (Calibration.CalibMode)GUILayout.Toolbar((int)pupilSettings.calibration.currentCalibrationMode, new string[] { "2D", "3D" }); if (calibrationMode != pupilSettings.calibration.currentCalibrationMode) { pupilSettings.calibration.currentCalibrationMode = calibrationMode; } GUI.enabled = true; if (EditorGUI.EndChangeCheck()) { // pupilSettings.calibration.SwitchCalibrationMode (); } ////////////////////////////2D-3D TOGGLE BAR//////////////////////////// ////////////////////////////CALIBRATION DEBUG MODE//////////////////////////// if (PupilTools.Settings.dataProcess.state == PupilSettings.EStatus.Calibration || !isEyeProcessConnected || (int)pupilSettings.calibration.currentCalibrationMode != 1) { } else { //GUI.enabled = false; EditorGUI.BeginChangeCheck(); pupilSettings.debugView.active = GUILayout.Toggle(pupilSettings.debugView.active, "Calibration Debug Mode", "Button"); GUI.enabled = true; if (EditorGUI.EndChangeCheck()) { if (pupilSettings.debugView.active) { if (pupilTracker.OperatorMonitorProperties[0].OperatorCamera != null) { OperatorMonitor.Instance.ExitOperatorMonitor(); } pupilTracker.debugInstance.StartCalibrationDebugView(); } else { pupilTracker.debugInstance.CloseCalibrationDebugView(); } } } if (pupilSettings.debugView.active) { // pupilTracker.calibrationDebugCamera = (PupilGazeTracker.CalibrationDebugCamera) EditorGUILayout.EnumPopup (pupilTracker.calibrationDebugCamera); GUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); pupilTracker.debugInstance.DebugViewVariables.isDrawLines = GUILayout.Toggle(pupilTracker.debugInstance.DebugViewVariables.isDrawLines, " Draw Debug Lines ", "Button"); pupilTracker.debugInstance.DebugViewVariables.isDrawPoints = GUILayout.Toggle(pupilTracker.debugInstance.DebugViewVariables.isDrawPoints, " Draw Debug Points ", "Button"); if (EditorGUI.EndChangeCheck()) { pupilTracker.debugInstance.SetDrawCalibrationPointCloud(pupilTracker.debugInstance.DebugViewVariables.isDrawPoints); pupilTracker.debugInstance.SetDrawCalibrationLines(pupilTracker.debugInstance.DebugViewVariables.isDrawLines); } GUILayout.EndHorizontal(); } GUI.enabled = true; ////////////////////////////CALIBRATION DEBUG MODE//////////////////////////// GUILayout.Space(20); GUILayout.BeginHorizontal(); ////////////////////HORIZONTAL//////////////////// GUILayout.Label("Samples ", pupilSettings.GUIStyles[3], GUILayout.MinWidth(35)); PupilTools.defaultCalibrationCount = EditorGUILayout.IntSlider(PupilTools.defaultCalibrationCount, 1, 120, GUILayout.ExpandWidth(true)); GUILayout.EndHorizontal(); ////////////////////HORIZONTAL//////////////////// GUILayout.Space(10); //------------------------------------------------------------// if (pupilSettings.customGUIVariables.bools.isAdvanced) { base.OnInspectorGUI(); } break; case 2: //RECORDING GUILayout.Space(20); GUILayout.BeginHorizontal(); pupilTracker.recorder.resolution = (FFmpegOut.FFmpegPipe.Resolution)EditorGUILayout.EnumPopup(pupilTracker.recorder.resolution); pupilTracker.recorder.codec = (FFmpegOut.FFmpegPipe.Codec)EditorGUILayout.EnumPopup(pupilTracker.recorder.codec);// GUILayout.Toolbar (pupilTracker.Codec, new string[] { GUILayout.EndHorizontal(); // GUILayout.BeginHorizontal (); // pupilTracker.recorder.isFixedRecordingLength = GUILayout.Toggle (pupilTracker.recorder.isFixedRecordingLength, "fixed length", "Button", GUILayout.Width (90)); // if (pupilTracker.recorder.isFixedRecordingLength) { // pupilTracker.recorder.recordingLength = EditorGUILayout.FloatField (pupilTracker.recorder.recordingLength); // } // GUILayout.EndHorizontal (); GUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); pupilTracker.recorder.isCustomPath = GUILayout.Toggle(pupilTracker.recorder.isCustomPath, "CustomPath", "Button", GUILayout.Width(90)); if (EditorGUI.EndChangeCheck()) { if (pupilTracker.recorder.isCustomPath) { pupilTracker.recorder.filePath = EditorUtility.OpenFolderPanel("Select the output folder", pupilTracker.recorder.filePath, ""); } } if (pupilTracker.recorder.isCustomPath) { GUIStyle centeredStyle = new GUIStyle(GUI.skin.textField); centeredStyle.alignment = TextAnchor.MiddleCenter; centeredStyle.margin = new RectOffset(0, 0, 3, 0); centeredStyle.fixedHeight = 20; pupilTracker.recorder.filePath = GUILayout.TextField(pupilTracker.recorder.filePath, centeredStyle); if (GUILayout.Button("Browse", GUILayout.Width(60))) { pupilTracker.recorder.filePath = EditorUtility.OpenFolderPanel("Select the output folder", pupilTracker.recorder.filePath, ""); } } GUILayout.EndHorizontal(); break; } //if change found set scene as dirty, so user will have to save changed values. if (EditorGUI.EndChangeCheck() && !Application.isPlaying) { EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } GUILayout.Space(10); }