private void Awake() { if (null == instance) { instance = this; } else { Debug.LogError("ERROR: MORE THAN ONE ARSTATICCAMERA IN SCENE!"); } }
private void Awake() { if (null == instance) { instance = this; } else { ARController.Log("ERROR: MORE THAN ONE ARSTATICCAMERA IN SCENE!"); } }
public override void OnInspectorGUI() { ARStaticCamera arStaticCamera = (ARStaticCamera)target; if (null == arStaticCamera) { return; } arStaticCamera.ContentLayer = EditorGUILayout.LayerField("AR Content Layer", arStaticCamera.ContentLayer); arStaticCamera.NearPlane = EditorGUILayout.FloatField("Near Plane", arStaticCamera.NearPlane); arStaticCamera.FarPlane = EditorGUILayout.FloatField("Far Plane", arStaticCamera.FarPlane); EditorGUILayout.Separator(); arStaticCamera.Stereo = EditorGUILayout.Toggle("Stereo Rendering", arStaticCamera.Stereo); if (ARToolKitAssetManager.OpticalCalibrations.Length <= 0) { arStaticCamera.Optical = false; } EditorGUI.BeginDisabledGroup(ARToolKitAssetManager.OpticalCalibrations.Length <= 0); arStaticCamera.Optical = EditorGUILayout.Toggle("Optical See-Through Display", arStaticCamera.Optical); EditorGUI.EndDisabledGroup(); if (ARToolKitAssetManager.OpticalCalibrations.Length <= 0) { EditorGUILayout.HelpBox("No optical calibration parameters found.", MessageType.Info); } if (arStaticCamera.Optical && ARToolKitAssetManager.OpticalCalibrations.Length <= 0) { ARController.Log("Error: ARStaticCamera - Attempted to enable optical see-through mode with no optical configurations in " + BasePath + "."); arStaticCamera.Optical = false; } if (!arStaticCamera.Optical) { // Reset to defaults in ARStaticCamera.cs arStaticCamera.EditorOpticalIndexL = 0; arStaticCamera.EditorOpticalNameL = null; arStaticCamera.OpticalParametersL = null; arStaticCamera.EditorOpticalIndexR = 0; arStaticCamera.EditorOpticalNameR = null; arStaticCamera.OpticalParametersR = null; arStaticCamera.OpticalEyeLateralOffset = 63.5f; return; } int newIndexL = EditorGUILayout.Popup("Left Eye Configuration", arStaticCamera.EditorOpticalIndexL, ARToolKitAssetManager.OpticalCalibrations); int newIndexR = EditorGUILayout.Popup("Right Eye Configuration", arStaticCamera.EditorOpticalIndexR, ARToolKitAssetManager.OpticalCalibrations); if ((string.CompareOrdinal(ARToolKitAssetManager.OpticalCalibrations[newIndexL], arStaticCamera.EditorOpticalNameL) != 0) || (string.CompareOrdinal(ARToolKitAssetManager.OpticalCalibrations[newIndexR], arStaticCamera.EditorOpticalNameR) != 0)) { arStaticCamera.EditorOpticalIndexL = newIndexL; arStaticCamera.EditorOpticalNameL = ARToolKitAssetManager.OpticalCalibrations[newIndexL]; arStaticCamera.OpticalParametersL = ReadOpticalParamsByName(arStaticCamera.EditorOpticalNameL); arStaticCamera.EditorOpticalIndexR = newIndexR; arStaticCamera.EditorOpticalNameR = ARToolKitAssetManager.OpticalCalibrations[newIndexR]; arStaticCamera.OpticalParametersR = ReadOpticalParamsByName(arStaticCamera.EditorOpticalNameR); arStaticCamera.Optical = true; } if (newIndexL == newIndexR) { // Sane defaults derived from https://en.wikipedia.org/wiki/Interpupillary_distance arStaticCamera.OpticalEyeLateralOffset = EditorGUILayout.Slider("Inter-Pupular Distance (mm)", arStaticCamera.OpticalEyeLateralOffset, 0.50f, 0.80f); EditorGUILayout.HelpBox("If you are using the same optical configuration for both the left and right eyes, you must supply an IPD (inter-pupular" + "distance) value. This is the spacing from one pupil to the other, in milimeters.", MessageType.Warning); } EditorGUILayout.Separator(); EditorGUILayout.HelpBox("Do not create a second camera object for the right eye! ARToolKit will do this for you.", MessageType.Info); }