public override void OnGUI(string searchContext) { if (settings == null) { settings = ALESettings.Get(); } using (new GUILayout.HorizontalScope()) { GUILayout.Space(6f); using (new GUILayout.VerticalScope()) { EditorGUIHelper.DrawHeaderLayout("Wrappers"); bool applyTransform = settings.ApplyTransformWrapper; EditorGUI.BeginChangeCheck(); applyTransform = EditorGUILayout.Toggle("Apply Transform", applyTransform); if (EditorGUI.EndChangeCheck()) { settings.ApplyTransformWrapper = applyTransform; settings.EditorSave(); } bool applyRigidbody = settings.ApplyRigidbodyWrapper; EditorGUI.BeginChangeCheck(); applyRigidbody = EditorGUILayout.Toggle("Apply Rigidbody", applyRigidbody); if (EditorGUI.EndChangeCheck()) { settings.ApplyRigidbodyWrapper = applyRigidbody; settings.EditorSave(); } } } }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { Rect r = position; r.height = EditorGUIUtility.singleLineHeight; EditorGUI.BeginChangeCheck(); EditorGUI.PropertyField(r, property, label, false); if (property.isExpanded) { SerializedProperty isOrthographic = property.FindPropertyRelative("isOrthographic"); SerializedProperty backgroundColor = property.FindPropertyRelative("backgroundColor"); SerializedProperty padding = property.FindPropertyRelative("padding"); SerializedProperty previewDirection = property.FindPropertyRelative("previewDirection"); SerializedProperty imageSize = property.FindPropertyRelative("imageSize"); EditorGUI.indentLevel++; r.y += NewLine; EditorGUI.PropertyField(r, isOrthographic); r.y += NewLine; EditorGUI.PropertyField(r, backgroundColor); r.y += NewLine; padding.floatValue = EditorGUI.Slider(r, padding.displayName, padding.floatValue, -0.25f, 0.25f); r.y += NewLine; EditorGUI.PropertyField(r, previewDirection); r.y += NewLine; EditorGUI.PropertyField(r, imageSize); if (EditorGUI.EndChangeCheck()) { generatePreview = true; } r.y += NewLine; EditorGUIHelper.DrawFancyFoldout(r, padding, "Preview", false, () => { if (generatePreview) { if (previewTexture != null) { Object.DestroyImmediate(previewTexture); } RuntimePreviewGenerator.OrthographicMode = isOrthographic.boolValue; RuntimePreviewGenerator.Padding = padding.floatValue; RuntimePreviewGenerator.BackgroundColor = backgroundColor.colorValue; RuntimePreviewGenerator.PreviewDirection = previewDirection.vector3Value; GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube); previewTexture = RuntimePreviewGenerator.GenerateModelPreview(go.transform, imageSize.vector2IntValue.x, imageSize.vector2IntValue.y, true); Object.DestroyImmediate(go); generatePreview = false; } Color oColor = GUI.backgroundColor; float backgroundTint = EditorGUIUtility.isProSkin ? 0.1f : 1f; GUI.backgroundColor = new Color(backgroundTint, backgroundTint, backgroundTint, 0.2f); r.y += NewLine; float width = imageSize.vector2IntValue.x > EditorGUIUtility.currentViewWidth ? EditorGUIUtility.currentViewWidth : imageSize.vector2IntValue.x; float center = r.position.x + (EditorGUIUtility.currentViewWidth / 2f) - width / 2f; GUI.Box(new Rect(center, r.y, width, imageSize.vector2IntValue.y), previewTexture); GUI.backgroundColor = oColor; }); EditorGUI.indentLevel--; } }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.PropertyField(twoDMode, twoDModeContent); EditorGUILayout.PropertyField(limitBounds); if (limitBounds.boolValue) { if (twoDMode.boolValue) { EditorGUILayout.PropertyField(bounds2DMin, boundsMinContent); EditorGUILayout.PropertyField(bounds2DMax, boundsMaxContent); } else { EditorGUILayout.PropertyField(bounds3DMin, boundsMinContent); EditorGUILayout.PropertyField(bounds3DMax, boundsMaxContent); } } EditorGUILayout.Space(); EditorGUIHelper.DrawFancyFoldout(twoDMode, "Speeds", true, () => { if (!twoDMode.boolValue) { EditorGUILayout.PropertyField(moveSpeed); EditorGUILayout.PropertyField(lookSpeed); EditorGUILayout.PropertyField(orbitSpeed); } EditorGUILayout.PropertyField(scrollModifier); EditorGUILayout.PropertyField(zoomSpeed); EditorGUILayout.PropertyField(minZoom); EditorGUILayout.PropertyField(maxZoom); }); EditorGUILayout.Space(); EditorGUIHelper.DrawFancyFoldout(canFly, "Capabilities", true, () => { if (!twoDMode.boolValue) { EditorGUILayout.PropertyField(canFly); EditorGUILayout.PropertyField(canElevate); EditorGUILayout.PropertyField(canZoom); EditorGUILayout.PropertyField(canDolly); EditorGUILayout.PropertyField(canPan); EditorGUILayout.PropertyField(canOrbit); } else { EditorGUILayout.PropertyField(canFly, canFlyContent); EditorGUILayout.PropertyField(canPan, canPanContent); EditorGUILayout.PropertyField(canDolly); EditorGUILayout.PropertyField(canZoom); } }); EditorGUILayout.Space(); EditorGUIHelper.DrawFancyFoldout(altModifier, "Input", true, () => { EditorGUILayout.PropertyField(input); EditorGUILayout.PropertyField(altModifier); EditorGUILayout.PropertyField(cameraZoom); EditorGUILayout.PropertyField(cameraFly); EditorGUILayout.PropertyField(cameraMove); EditorGUILayout.PropertyField(cameraLook); EditorGUILayout.PropertyField(cameraElevate); EditorGUILayout.PropertyField(cameraOrbit); EditorGUILayout.PropertyField(cameraPan); }); serializedObject.ApplyModifiedProperties(); }