public override void OnInspectorGUI() { OvrvisionProperty resultProp = new OvrvisionProperty(); Ovrvision obj = target as Ovrvision; EditorGUILayout.LabelField( "Ovrvision Status" ); if(obj.camStatus) EditorGUILayout.HelpBox( "Opened", MessageType.Info, true ); else EditorGUILayout.HelpBox( "Closed", MessageType.Error, true ); EditorGUILayout.Space(); EditorGUILayout.LabelField("Ovrvision Configures"); if (EditorGUILayout.Toggle ("Exposure Automatic", resultProp.exposure < 0) == false) resultProp.exposure = EditorGUILayout.IntSlider ("Exposure level", resultProp.exposure, 0, 5); else resultProp.exposure = OV_SET_AUTOMODE; //Automode if (EditorGUILayout.Toggle ("Color temp Automatic", resultProp.whitebalance < 0) == false) resultProp.whitebalance = EditorGUILayout.IntSlider( "Color temperature", resultProp.whitebalance, 2800, 6500 ); else resultProp.whitebalance = OV_SET_AUTOMODE; //Automode resultProp.contrast = EditorGUILayout.IntSlider( "Contrast", resultProp.contrast, 0, 127 ); resultProp.saturation = EditorGUILayout.IntSlider( "Saturation", resultProp.saturation, 0, 127 ); resultProp.brightness = EditorGUILayout.IntSlider( "Brightness", resultProp.brightness, 0, 255 ); resultProp.sharpness = EditorGUILayout.IntSlider( "Sharpness", resultProp.sharpness, 0, 15 ); resultProp.gamma = EditorGUILayout.IntSlider( "Gamma", resultProp.gamma, 0, 10 ); EditorGUILayout.Space(); //Ovrvision ex obj.useOvrvisionEx = EditorGUILayout.Toggle("Use the OvrvisionEx", obj.useOvrvisionEx); EditorGUILayout.Space(); //Select plane shader string[] planeshader = {"Normal Shader", "Chroma-key Shader"}; obj.camViewShader = EditorGUILayout.Popup("Camera view shader", obj.camViewShader, planeshader); if (obj.camViewShader == 1) //Chroma-Key shader { obj.chroma_hue.x = EditorGUILayout.Slider("Max Hue", obj.chroma_hue.x, 0.0f, 1.0f); obj.chroma_hue.y = EditorGUILayout.Slider("Min Hue", obj.chroma_hue.y, 0.0f, 1.0f); obj.chroma_saturation.x = EditorGUILayout.Slider("Max Saturation", obj.chroma_saturation.x, 0.0f, 1.0f); obj.chroma_saturation.y = EditorGUILayout.Slider("Min Saturation", obj.chroma_saturation.y, 0.0f, 1.0f); obj.chroma_brightness.x = EditorGUILayout.Slider("Max Brightness", obj.chroma_brightness.x, 0.0f, 1.0f); obj.chroma_brightness.y = EditorGUILayout.Slider("Min Brightness ", obj.chroma_brightness.y, 0.0f, 1.0f); } EditorUtility.SetDirty( target ); //editor set //changed param if (GUI.changed) { obj.UpdateOvrvisionSetting(resultProp); //apply EditorUtility.SetDirty( target ); //editor set } }
//Public methods. //UpdateOvrvisionSetting method public void UpdateOvrvisionSetting(OvrvisionProperty prop) { if (!camStatus) return; ovSetExposure (prop.exposure); ovSetWhiteBalance (prop.whitebalance); ovSetContrast (prop.contrast); ovSetSaturation (prop.saturation); ovSetBrightness (prop.brightness); ovSetSharpness (prop.sharpness); ovSetGamma (prop.gamma); }
//Public methods. //UpdateOvrvisionSetting method public void UpdateOvrvisionSetting(OvrvisionProperty prop) { if (!camStatus) return; //set config ovSetExposure (prop.exposure); ovSetWhiteBalance (prop.whitebalance); ovSetContrast (prop.contrast); ovSetSaturation (prop.saturation); ovSetBrightness (prop.brightness); ovSetSharpness (prop.sharpness); ovSetGamma (prop.gamma); ovSetIPDHorizontal(prop.IPDHorizontal); ovSetIPDVertical(prop.IPDVertical); //change shader if (camViewShader == 0) { //Normal shader go_cameraPlaneLeft.renderer.material.shader = Shader.Find("Ovrvision/ovTexture"); go_cameraPlaneRight.renderer.material.shader = Shader.Find("Ovrvision/ovTexture"); } else if (camViewShader == 1) { //Chroma-key shader go_cameraPlaneLeft.renderer.material.shader = Shader.Find("Ovrvision/ovChromaticMask"); go_cameraPlaneRight.renderer.material.shader = Shader.Find("Ovrvision/ovChromaticMask"); go_cameraPlaneLeft.renderer.material.SetFloat("_Color_maxh", chroma_hue.x); go_cameraPlaneLeft.renderer.material.SetFloat("_Color_minh", chroma_hue.y); go_cameraPlaneLeft.renderer.material.SetFloat("_Color_maxs", chroma_saturation.x); go_cameraPlaneLeft.renderer.material.SetFloat("_Color_mins", chroma_saturation.y); go_cameraPlaneLeft.renderer.material.SetFloat("_Color_maxv", chroma_brightness.x); go_cameraPlaneLeft.renderer.material.SetFloat("_Color_minv", chroma_brightness.y); go_cameraPlaneRight.renderer.material.SetFloat("_Color_maxh", chroma_hue.x); go_cameraPlaneRight.renderer.material.SetFloat("_Color_minh", chroma_hue.y); go_cameraPlaneRight.renderer.material.SetFloat("_Color_maxs", chroma_saturation.x); go_cameraPlaneRight.renderer.material.SetFloat("_Color_mins", chroma_saturation.y); go_cameraPlaneRight.renderer.material.SetFloat("_Color_maxv", chroma_brightness.x); go_cameraPlaneRight.renderer.material.SetFloat("_Color_minv", chroma_brightness.y); } }
public override void OnInspectorGUI() { OvrvisionProperty resultProp = new OvrvisionProperty(); Ovrvision obj = target as Ovrvision; EditorGUILayout.LabelField( "Ovrvision Status" ); if(obj.camStatus) EditorGUILayout.HelpBox( "Opened", MessageType.Info, true ); else EditorGUILayout.HelpBox( "Closed", MessageType.Error, true ); EditorGUILayout.Space(); EditorGUILayout.LabelField( "Ovrvision Setting" ); if (EditorGUILayout.Toggle ("Exposure Automatic", resultProp.exposure < 0) == false) resultProp.exposure = EditorGUILayout.IntSlider ("Exposure level", resultProp.exposure, 0, 5); else resultProp.exposure = OV_SET_AUTOMODE; //Automode if (EditorGUILayout.Toggle ("Color temp Automatic", resultProp.whitebalance < 0) == false) resultProp.whitebalance = EditorGUILayout.IntSlider( "Color temperature", resultProp.whitebalance, 2800, 6500 ); else resultProp.whitebalance = OV_SET_AUTOMODE; //Automode resultProp.contrast = EditorGUILayout.IntSlider( "Contrast", resultProp.contrast, 0, 127 ); resultProp.saturation = EditorGUILayout.IntSlider( "Saturation", resultProp.saturation, 0, 127 ); resultProp.brightness = EditorGUILayout.IntSlider( "Brightness", resultProp.brightness, 0, 255 ); resultProp.sharpness = EditorGUILayout.IntSlider( "Sharpness", resultProp.sharpness, 0, 15 ); resultProp.gamma = EditorGUILayout.IntSlider( "Gamma", resultProp.gamma, 0, 10 ); EditorUtility.SetDirty( target ); //editor set //changed param if (GUI.changed) { obj.UpdateOvrvisionSetting(resultProp); //apply EditorUtility.SetDirty( target ); //editor set } }