Example #1
0
        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--;
            }
        }
Example #3
0
        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();
        }