예제 #1
0
        public override void OnInspectorGUI()
        {
            //sky.Profile = EditorGUILayout.ObjectField("Profile", sky.Profile, typeof(JSkyProfile), false) as JSkyProfile;
            sky.Profile = JEditorCommon.ScriptableObjectField <JSkyProfile>("Profile", sky.Profile);
            profile     = sky.Profile;
            if (sky.Profile == null)
            {
                return;
            }

            DrawSceneReferencesGUI();
            EditorGUI.BeginChangeCheck();
            DrawSkyGUI();
            DrawStarsGUI();
            DrawSunGUI();
            DrawMoonGUI();
            DrawHorizonCloudGUI();
            DrawOverheadCloudGUI();
            DrawDetailOverlayGUI();
            DrawUtilitiesGUI();

            if (EditorGUI.EndChangeCheck())
            {
                profile.UpdateMaterialProperties();
            }

            DrawAddDayNightCycleGUI();
        }
예제 #2
0
        private void DrawSunGUI()
        {
            string label = "Sun";
            string id    = "sun" + profile.GetInstanceID();;

            JEditorCommon.Foldout(label, false, id, () =>
            {
                profile.EnableSun = EditorGUILayout.Toggle("Enable", profile.EnableSun);
                if (profile.EnableSun)
                {
                    profile.UseBakedSun = EditorGUILayout.Toggle("Baked", profile.UseBakedSun);
                }
                if (profile.EnableSun && !profile.UseBakedSun)
                {
                    profile.SunTexture  = JEditorCommon.InlineTexture2DField("Texture", profile.SunTexture, -1);
                    profile.SunColor    = EditorGUILayout.ColorField(new GUIContent("Color"), profile.SunColor, true, true, true);
                    profile.SunSize     = EditorGUILayout.Slider("Size", profile.SunSize, 0f, 1f);
                    profile.SunSoftEdge = EditorGUILayout.Slider("Soft Edge", profile.SunSoftEdge, 0f, 1f);
                    profile.SunGlow     = EditorGUILayout.Slider("Glow", profile.SunGlow, 0f, 1f);
                }
                if (profile.EnableSun && profile.UseBakedSun)
                {
                    profile.SunCubemap = JEditorCommon.InlineCubemapField("Cubemap", profile.SunCubemap, -1);
                }
                if (profile.EnableSun)
                {
                    profile.SunLightColor     = EditorGUILayout.ColorField("Light Color", profile.SunLightColor);
                    profile.SunLightIntensity = EditorGUILayout.FloatField("Light Intensity", profile.SunLightIntensity);
                }
            });
        }
예제 #3
0
        private void DrawOverheadCloudGUI()
        {
            string label = "Overhead Cloud";
            string id    = "overhead-cloud" + profile.GetInstanceID();;

            JEditorCommon.Foldout(label, false, id, () =>
            {
                profile.EnableOverheadCloud = EditorGUILayout.Toggle("Enable", profile.EnableOverheadCloud);
                if (profile.EnableOverheadCloud)
                {
                    profile.CustomCloudTexture    = JEditorCommon.InlineTexture2DField("Texture", profile.CustomCloudTexture, -1);
                    profile.OverheadCloudColor    = ColorField("Color", profile.OverheadCloudColor, true, true, false, nameof(profile.OverheadCloudColor));
                    profile.OverheadCloudAltitude = FloatField("Altitude", profile.OverheadCloudAltitude, nameof(profile.OverheadCloudAltitude));
                    profile.OverheadCloudSize     = FloatField("Size", profile.OverheadCloudSize, nameof(profile.OverheadCloudSize));
                    if (profile.AllowStepEffect)
                    {
                        profile.OverheadCloudStep = EditorGUILayout.IntField("Step", profile.OverheadCloudStep);
                    }
                    profile.OverheadCloudAnimationSpeed = FloatField("Animation Speed", profile.OverheadCloudAnimationSpeed, nameof(profile.OverheadCloudAnimationSpeed));
                    profile.OverheadCloudFlowDirectionX = Slider("Flow X", profile.OverheadCloudFlowDirectionX, -1, 1, nameof(profile.OverheadCloudFlowDirectionX));
                    profile.OverheadCloudFlowDirectionZ = Slider("Flow Z", profile.OverheadCloudFlowDirectionZ, -1, 1, nameof(profile.OverheadCloudFlowDirectionZ));
                    profile.OverheadCloudRemapMin       = FloatField("Remap Min", profile.OverheadCloudRemapMin, nameof(profile.OverheadCloudRemapMin));
                    profile.OverheadCloudRemapMax       = FloatField("Remap Max", profile.OverheadCloudRemapMax, nameof(profile.OverheadCloudRemapMax));
                    profile.OverheadCloudCastShadow     = EditorGUILayout.Toggle("Cast Shadow (Experimental)", profile.OverheadCloudCastShadow);
                    if (profile.OverheadCloudCastShadow)
                    {
                        profile.OverheadCloudShadowClipMask = EditorGUILayout.Slider("Clip Mask", profile.OverheadCloudShadowClipMask, 0f, 1f);
                    }
                }
            });
        }
        private void DrawMoonGUI()
        {
            string label = "Moon";
            string id    = "moon" + instance.GetInstanceID();;

            JEditorCommon.Foldout(label, false, id, () =>
            {
                instance.EnableMoon = EditorGUILayout.Toggle("Enable", instance.EnableMoon);
                if (instance.EnableMoon)
                {
                    instance.UseBakedMoon = EditorGUILayout.Toggle("Baked", instance.UseBakedMoon);
                }
                if (instance.EnableMoon && !instance.UseBakedMoon)
                {
                    instance.MoonTexture  = JEditorCommon.InlineTexture2DField("Texture", instance.MoonTexture, -1);
                    instance.MoonColor    = EditorGUILayout.ColorField(new GUIContent("Color"), instance.MoonColor, true, true, true);
                    instance.MoonSize     = EditorGUILayout.Slider("Size", instance.MoonSize, 0f, 1f);
                    instance.MoonSoftEdge = EditorGUILayout.Slider("Soft Edge", instance.MoonSoftEdge, 0f, 1f);
                    instance.MoonGlow     = EditorGUILayout.Slider("Glow", instance.MoonGlow, 0f, 1f);
                }
                if (instance.EnableMoon && instance.UseBakedMoon)
                {
                    instance.MoonCubemap = JEditorCommon.InlineCubemapField("Cubemap", instance.MoonCubemap, -1);
                }
                if (instance.EnableMoon)
                {
                    instance.MoonLightColor     = EditorGUILayout.ColorField("Light Color", instance.MoonLightColor);
                    instance.MoonLightIntensity = EditorGUILayout.FloatField("Light Intensity", instance.MoonLightIntensity);
                }
            });
        }
예제 #5
0
        public override void OnInspectorGUI()
        {
            sky.Profile = JEditorCommon.ScriptableObjectField <JSkyProfile>("Profile", sky.Profile);
            profile     = sky.Profile;
            if (sky.Profile == null)
            {
                return;
            }
            dnc = sky.GetComponent <JDayNightCycle>();

            DrawSceneReferencesGUI();
            EditorGUI.BeginChangeCheck();
            DrawSkyGUI();
            DrawStarsGUI();
            DrawSunGUI();
            DrawMoonGUI();
            DrawHorizonCloudGUI();
            DrawOverheadCloudGUI();
            DrawDetailOverlayGUI();
            DrawUtilitiesGUI();

            if (EditorGUI.EndChangeCheck())
            {
                profile.UpdateMaterialProperties();
                EditorUtility.SetDirty(sky);
                EditorUtility.SetDirty(profile);
            }

            DrawAddDayNightCycleGUI();
        }
예제 #6
0
        private void DrawMoonGUI()
        {
            string label = "Moon";
            string id    = "moon" + profile.GetInstanceID();;

            JEditorCommon.Foldout(label, false, id, () =>
            {
                profile.EnableMoon = EditorGUILayout.Toggle("Enable", profile.EnableMoon);
                if (profile.EnableMoon)
                {
                    profile.UseBakedMoon = EditorGUILayout.Toggle("Baked", profile.UseBakedMoon);
                }
                if (profile.EnableMoon && !profile.UseBakedMoon)
                {
                    profile.MoonTexture  = JEditorCommon.InlineTexture2DField("Texture", profile.MoonTexture, -1);
                    profile.MoonColor    = ColorField("Color", profile.MoonColor, true, true, true, nameof(profile.MoonColor));
                    profile.MoonSize     = Slider("Size", profile.MoonSize, 0f, 1f, nameof(profile.MoonSize));
                    profile.MoonSoftEdge = Slider("Soft Edge", profile.MoonSoftEdge, 0f, 1f, nameof(profile.MoonSoftEdge));
                    profile.MoonGlow     = Slider("Glow", profile.MoonGlow, 0f, 1f, nameof(profile.MoonGlow));
                }
                if (profile.EnableMoon && profile.UseBakedMoon)
                {
                    profile.MoonCubemap = JEditorCommon.InlineCubemapField("Cubemap", profile.MoonCubemap, -1);
                }
                if (profile.EnableMoon)
                {
                    profile.MoonLightColor     = ColorField("Light Color", profile.MoonLightColor, true, false, false, nameof(profile.MoonLightColor));
                    profile.MoonLightIntensity = FloatField("Light Intensity", profile.MoonLightIntensity, nameof(profile.MoonLightIntensity));
                }
            });
        }
        public override void OnInspectorGUI()
        {
            cycle.Profile = JEditorCommon.ScriptableObjectField <JDayNightCycleProfile>("Profile", cycle.Profile);
            profile       = cycle.Profile;
            if (cycle.Profile == null)
            {
                return;
            }

            DrawSceneReferencesGUI();
            DrawTimeGUI();
            EditorGUI.BeginChangeCheck();
            DrawSkyGUI();
            DrawStarsGUI();
            DrawSunGUI();
            DrawMoonGUI();
            DrawHorizonCloudGUI();
            DrawOverheadCloudGUI();
            DrawDetailOverlayGUI();
            DrawEnvironmentReflectionGUI();
            if (EditorGUI.EndChangeCheck())
            {
                EditorUtility.SetDirty(profile);
            }
        }
예제 #8
0
 public static void ShowBusinessEmailEditor()
 {
     JEditorCommon.OpenEmailEditor(
         JCommon.BUSINESS_EMAIL,
         "[Jupiter] SHORT_MESSAGE_HERE",
         "YOUR_MESSAGE_IN_DETAIL");
 }
예제 #9
0
 public static void ShowSupportEmailEditor()
 {
     JEditorCommon.OpenEmailEditor(
         JCommon.SUPPORT_EMAIL,
         "[Jupiter] SHORT_QUESTION_HERE",
         "YOUR_QUESTION_IN_DETAIL");
 }
예제 #10
0
        private void DrawExportGUI()
        {
            string label = "Export";
            string id    = "export" + GetInstanceID();

            JEditorCommon.Foldout(label, true, id, () =>
            {
                CameraPosition  = JEditorCommon.InlineVector3Field("Position", CameraPosition);
                CameraNearPlane = EditorGUILayout.FloatField("Near Plane", CameraNearPlane);
                CameraFarPlane  = EditorGUILayout.FloatField("Far Plane", CameraFarPlane);
                CameraClearFlag = (CameraClearFlags)EditorGUILayout.EnumPopup("Clear Flags", CameraClearFlag);
                if (CameraClearFlag == CameraClearFlags.Color)
                {
                    CameraBackgroundColor = EditorGUILayout.ColorField("Background Color", CameraBackgroundColor);
                }

                Resolution         = EditorGUILayout.IntPopup("Resolution", Resolution, ResolutionLabels, ResolutionValues);
                ExportFaceTextures = EditorGUILayout.Toggle("Export Face Textures", ExportFaceTextures);

                string dir = Directory;
                JEditorCommon.BrowseFolder("Directory", ref dir);
                Directory = dir;

                GUI.enabled = !string.IsNullOrEmpty(Directory);
                if (GUILayout.Button("Export"))
                {
                    Export();
                }
                GUI.enabled = true;
            });
        }
예제 #11
0
        private void DrawUtilitiesGUI()
        {
            string label = "Utilities";
            string id    = "utilities" + profile.GetInstanceID();;

            JEditorCommon.Foldout(label, false, id, () =>
            {
                profile.AllowStepEffect = EditorGUILayout.Toggle("Allow Step Effect", profile.AllowStepEffect);
            });
        }
예제 #12
0
        public static bool Foldout(string label, string prefkeys, bool defaultValue = true)
        {
            string prefKey  = JEditorCommon.GetProjectRelatedEditorPrefsKey("foldout", prefkeys);
            bool   expanded = EditorPrefs.GetBool(prefKey, defaultValue);

            expanded = EditorGUILayout.Foldout(expanded, label);
            EditorPrefs.SetBool(prefKey, expanded);

            return(expanded);
        }
        private void DrawSceneReferencesGUI()
        {
            string label = "Scene References";
            string id    = "scene-ref" + cycle.GetInstanceID();

            JEditorCommon.Foldout(label, false, id, () =>
            {
                cycle.Sky           = EditorGUILayout.ObjectField("Sky", cycle.Sky, typeof(JSky), true) as JSky;
                cycle.SunOrbitPivot = EditorGUILayout.ObjectField("Orbit Pivot", cycle.SunOrbitPivot, typeof(Transform), true) as Transform;
            });
        }
예제 #14
0
        private void DrawSceneReferencesGUI()
        {
            string label = "Scene References";
            string id    = "scene-references";

            JEditorCommon.Foldout(label, false, id, () =>
            {
                sky.SunLightSource  = EditorGUILayout.ObjectField("Sun Light Source", sky.SunLightSource, typeof(Light), true) as Light;
                sky.MoonLightSource = EditorGUILayout.ObjectField("Moon Light Source", sky.MoonLightSource, typeof(Light), true) as Light;
            });
        }
예제 #15
0
 private void OnDisable()
 {
     EditorPrefs.SetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_POS_X), CameraPosition.x);
     EditorPrefs.SetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_POS_Y), CameraPosition.y);
     EditorPrefs.SetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_POS_Z), CameraPosition.z);
     EditorPrefs.SetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_NEAR_PLANE), CameraNearPlane);
     EditorPrefs.SetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_FAR_PLANE), CameraFarPlane);
     EditorPrefs.SetInt(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_CLEAR_FLAG), (int)CameraClearFlag);
     EditorPrefs.SetString(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_BG_COLOR), ColorUtility.ToHtmlStringRGB(CameraBackgroundColor));
     EditorPrefs.SetInt(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, RESOLUTION), Resolution);
     EditorPrefs.SetBool(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, EXPORT_FACE_TEXTURES), ExportFaceTextures);
     EditorPrefs.SetString(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, DIRECTORY), Directory);
 }
        private void DrawDetailOverlayGUI()
        {
            string label = "Detail Overlay";
            string id    = "detail-overlay" + profile.GetInstanceID();

            JEditorCommon.Foldout(label, false, id, () =>
            {
                DisplayAddedProperties("Detail Overlay");
                if (GUILayout.Button("Add"))
                {
                    DisplayAllPropertiesAsContext("Detail Overlay");
                }
            });
        }
        private void DrawOverheadCloudGUI()
        {
            string label = "Overhead Cloud";
            string id    = "overhead-cloud" + profile.GetInstanceID();

            JEditorCommon.Foldout(label, false, id, () =>
            {
                DisplayAddedProperties("Overhead Cloud");
                if (GUILayout.Button("Add"))
                {
                    DisplayAllPropertiesAsContext("Overhead Cloud");
                }
            });
        }
        private void DrawHorizonCloudGUI()
        {
            string label = "Horizon Cloud";
            string id    = "horizon-cloud" + instance.GetInstanceID();

            JEditorCommon.Foldout(label, false, id, () =>
            {
                DisplayAddedProperties("Horizon Cloud");
                if (GUILayout.Button("Add"))
                {
                    DisplayAllPropertiesAsContext("Horizon Cloud");
                }
            });
        }
        private void DrawStarsGUI()
        {
            string label = "Stars";
            string id    = "stars" + profile.GetInstanceID();

            JEditorCommon.Foldout(label, false, id, () =>
            {
                DisplayAddedProperties("Stars");
                if (GUILayout.Button("Add"))
                {
                    DisplayAllPropertiesAsContext("Stars");
                }
            });
        }
        private void DrawMoonGUI()
        {
            string label = "Moon";
            string id    = "moon" + instance.GetInstanceID();

            JEditorCommon.Foldout(label, false, id, () =>
            {
                DisplayAddedProperties("Moon");
                if (GUILayout.Button("Add"))
                {
                    DisplayAllPropertiesAsContext("Moon");
                }
            });
        }
        private void DrawTimeGUI()
        {
            string label = "Time";
            string id    = "time" + cycle.GetInstanceID();

            isTimeFoldoutExpanded = JEditorCommon.Foldout(label, false, id, () =>
            {
                cycle.StartTime         = EditorGUILayout.FloatField("Start Time", cycle.StartTime);
                cycle.TimeIncrement     = EditorGUILayout.FloatField("Time Increment", cycle.TimeIncrement);
                GUI.enabled             = !cycle.AutoTimeIncrement;
                cycle.Time              = EditorGUILayout.Slider("Time", cycle.Time, 0f, 24f);
                GUI.enabled             = true;
                cycle.AutoTimeIncrement = EditorGUILayout.Toggle("Auto", cycle.AutoTimeIncrement);
            });
        }
        private void DrawEnvironmentReflectionGUI()
        {
            string label = "Environment Reflection";
            string id    = "env-reflection";

            JEditorCommon.Foldout(label, false, id, () =>
            {
                cycle.ShouldUpdateEnvironmentReflection = EditorGUILayout.Toggle("Enable", cycle.ShouldUpdateEnvironmentReflection);
                if (cycle.ShouldUpdateEnvironmentReflection)
                {
                    cycle.EnvironmentReflectionResolution      = EditorGUILayout.IntPopup("Resolution", cycle.EnvironmentReflectionResolution, resolutionLabels, resolutionValues);
                    cycle.EnvironmentReflectionTimeSlicingMode = (ReflectionProbeTimeSlicingMode)EditorGUILayout.EnumPopup("Time Slicing", cycle.EnvironmentReflectionTimeSlicingMode);
                    EditorGUILayout.LabelField("Realtime Reflection Probe must be enabled in Quality Settings.", JEditorCommon.WordWrapItalicLabel);
                }
            });
        }
예제 #23
0
        private void DrawDetailOverlayGUI()
        {
            string label = "Detail Overlay";
            string id    = "detail-overlay" + profile.GetInstanceID();;

            JEditorCommon.Foldout(label, false, id, () =>
            {
                profile.EnableDetailOverlay = EditorGUILayout.Toggle("Enable", profile.EnableDetailOverlay);
                if (profile.EnableDetailOverlay)
                {
                    profile.DetailOverlayTintColor     = ColorField("Color", profile.DetailOverlayTintColor, true, true, false, nameof(profile.DetailOverlayTintColor));
                    profile.DetailOverlayCubeMap       = JEditorCommon.InlineCubemapField("Cubemap", profile.DetailOverlayCubeMap, -1);
                    profile.DetailOverlayLayer         = (JDetailOverlayLayer)EditorGUILayout.EnumPopup("Layer", profile.DetailOverlayLayer);
                    profile.DetailOverlayRotationSpeed = FloatField("Rotation Speed", profile.DetailOverlayRotationSpeed, nameof(profile.DetailOverlayRotationSpeed));
                }
            });
        }
예제 #24
0
        private void DrawRightPane()
        {
            Color separatorColor = JEditorCommon.boxBorderColor;

            JEditorCommon.DrawLine(
                new Vector2(RightPaneRect.min.x - 2, RightPaneRect.min.y - 2),
                new Vector2(RightPaneRect.min.x - 2, RightPaneRect.max.y),
                separatorColor);

            GUILayout.BeginArea(RightPaneRect);
            rightPaneScrollPos = EditorGUILayout.BeginScrollView(rightPaneScrollPos);

            OnRightPaneScrollViewGUI();

            EditorGUILayout.EndScrollView();
            GUILayout.EndArea();
        }
        private void DrawSkyGUI()
        {
            string label = "Sky";
            string id    = "sky" + instance.GetInstanceID();;

            JEditorCommon.Foldout(label, false, id, () =>
            {
                instance.SkyColor     = EditorGUILayout.ColorField("Sky Color", instance.SkyColor);
                instance.HorizonColor = EditorGUILayout.ColorField("Horizon Color", instance.HorizonColor);
                instance.GroundColor  = EditorGUILayout.ColorField("Ground Color", instance.GroundColor);
                if (instance.AllowStepEffect)
                {
                    instance.HorizonStep = EditorGUILayout.IntField("Horizon Step", instance.HorizonStep);
                }
                instance.HorizonExponent  = EditorGUILayout.FloatField("Horizon Exponent", instance.HorizonExponent);
                instance.HorizonThickness = EditorGUILayout.Slider("Horizon Thickness", instance.HorizonThickness, 0f, 1f);
            });
        }
예제 #26
0
        private void OnEnable()
        {
            float x = EditorPrefs.GetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_POS_X), 0);
            float y = EditorPrefs.GetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_POS_Y), 0);
            float z = EditorPrefs.GetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_POS_Z), 0);

            CameraPosition  = new Vector3(x, y, z);
            CameraNearPlane = EditorPrefs.GetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_NEAR_PLANE), 0);
            CameraFarPlane  = EditorPrefs.GetFloat(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_FAR_PLANE), 1000);
            CameraClearFlag = (CameraClearFlags)EditorPrefs.GetInt(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_CLEAR_FLAG), 0);
            string htmlColor = EditorPrefs.GetString(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, CAM_BG_COLOR), "FFFFFF");
            Color  c         = Color.white;

            ColorUtility.TryParseHtmlString("#" + htmlColor, out c);
            CameraBackgroundColor = c;
            Resolution            = EditorPrefs.GetInt(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, RESOLUTION), 512);
            ExportFaceTextures    = EditorPrefs.GetBool(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, EXPORT_FACE_TEXTURES), false);
            Directory             = EditorPrefs.GetString(JEditorCommon.GetProjectRelatedEditorPrefsKey(PREF_PREFIX, DIRECTORY), "Assets/");
        }
예제 #27
0
        private void DrawAddDayNightCycleGUI()
        {
            JDayNightCycle cycle = sky.GetComponent <JDayNightCycle>();

            if (cycle != null)
            {
                return;
            }

            string label = "Day Night Cycle";
            string id    = "day-night-cycle" + sky.GetInstanceID();

            JEditorCommon.Foldout(label, false, id, () =>
            {
                if (GUILayout.Button("Add Day Night Cycle"))
                {
                    sky.gameObject.AddComponent <JDayNightCycle>();
                }
            });
        }
        private void DrawMoonGUI()
        {
            string label = "Moon";
            string id    = "moon" + profile.GetInstanceID();

            JEditorCommon.Foldout(label, false, id, () =>
            {
                cycle.UseMoonPivot = EditorGUILayout.Toggle("Custom Pivot", cycle.UseMoonPivot);
                if (cycle.UseMoonPivot)
                {
                    cycle.MoonOrbitPivot = EditorGUILayout.ObjectField("Pivot", cycle.MoonOrbitPivot, typeof(Transform), true) as Transform;
                }
                JEditorCommon.Separator();

                DisplayAddedProperties("Moon");
                if (GUILayout.Button("Add"))
                {
                    DisplayAllPropertiesAsContext("Moon");
                }
            });
        }
        private void DisplayAddedProperties(string group)
        {
            EditorGUI.indentLevel -= 1;
            JAnimatedProperty        toRemoveProp = null;
            List <JAnimatedProperty> props        = profile.AnimatedProperties.FindAll(p => p.DisplayName.StartsWith(group));

            for (int i = 0; i < props.Count; ++i)
            {
                EditorGUILayout.BeginHorizontal();
                JAnimatedProperty p = props[i];
                if (GUILayout.Button("▬", EditorStyles.miniLabel, GUILayout.Width(12)))
                {
                    toRemoveProp = p;
                }

                string itemLabel = p.DisplayName.Substring(p.DisplayName.IndexOf("/") + 1);
                itemLabel = ObjectNames.NicifyVariableName(itemLabel);
                if (p.CurveOrGradient == JCurveOrGradient.Curve)
                {
                    p.Curve = EditorGUILayout.CurveField(itemLabel, p.Curve);
                }
                else
                {
                    p.Gradient = EditorGUILayout.GradientField(itemLabel, p.Gradient);
                }

                EditorGUILayout.EndHorizontal();
            }
            if (props.Count > 0)
            {
                JEditorCommon.Separator();
            }

            if (toRemoveProp != null)
            {
                profile.AnimatedProperties.Remove(toRemoveProp);
            }
            EditorGUI.indentLevel += 1;
        }
예제 #30
0
        private void DrawSkyGUI()
        {
            string label = "Sky";
            string id    = "sky" + profile.GetInstanceID();;

            JEditorCommon.Foldout(label, false, id, () =>
            {
                profile.SkyColor     = ColorField("Sky Color", profile.SkyColor, true, true, true, nameof(profile.SkyColor));
                profile.HorizonColor = ColorField("Horizon Color", profile.HorizonColor, true, true, true, nameof(profile.HorizonColor));
                profile.GroundColor  = ColorField("Ground Color", profile.GroundColor, true, true, true, nameof(profile.GroundColor));
                if (profile.AllowStepEffect)
                {
                    profile.HorizonStep = EditorGUILayout.IntField("Horizon Step", profile.HorizonStep);
                }
                profile.HorizonExponent  = FloatField("Horizon Exponent", profile.HorizonExponent, nameof(profile.HorizonExponent));
                profile.HorizonThickness = Slider("Horizon Thickness", profile.HorizonThickness, 0f, 1f, nameof(profile.HorizonThickness));
                profile.FogSyncOption    = (JFogSyncOption)EditorGUILayout.EnumPopup("Fog Sync", profile.FogSyncOption);
                if (profile.FogSyncOption == JFogSyncOption.CustomColor)
                {
                    profile.FogColor = ColorField("Fog Color", profile.FogColor, true, true, false, nameof(profile.FogColor));
                }
            });
        }