示例#1
0
文件: ICfg.cs 项目: Hengle/Tools-3
        public static bool Inspect <T>(ref T configs, Func <T, T> func) where T : ConfigurationsListBase
        {
            var changed = false;

            if (configs)
            {
                if (icon.UnLinked.Click("Disconnect config"))
                {
                    configs = null;
                }
                else
                {
                    configs.Nested_Inspect().nl(ref changed);
                }
            }
            else
            {
                "Configs".edit(90, ref configs);

                if (icon.Create.Click("Create new Config"))
                {
                    configs = UnityUtils.CreateScriptableObjectAsset <T>("Tools/Configs", "Config");
                }

                pegi.nl();
            }

            return(changed);
        }
示例#2
0
        public bool Inspect()
        {
            bool changed = false;

            bool notInspectingProperty = inspectedProperty == -1;

            _thickness.enter_Inspect_AsList(ref inspectedProperty, 0).nl(ref changed);

            if (notInspectingProperty)
            {
                "Noise:".edit(ref _noise.targetValue, 0, 2).nl(ref changed);
            }

            upscale.enter_Inspect_AsList(ref inspectedProperty, 1).nl(ref changed);
            _simulationSpeed.enter_Inspect_AsList(ref inspectedProperty, 2).nl(ref changed);

            if (notInspectingProperty)
            {
                "Control Project Settings".toggleIcon(ref modifyProjectSettings).nl();

                "Shadow:".write(PEGI_Styles.ListLabel);
                pegi.nl();
                "_color:".edit(60, ref shadowColor.targetValue).nl(ref changed);
            }


            if (modifyProjectSettings)
            {
                shadowDistance.enter_Inspect_AsList(ref inspectedProperty, 3).nl(ref changed);

                bool fog = RenderSettings.fog;

                if (notInspectingProperty && "Fog (Recommended)".toggleIcon(ref fog, true).changes(ref changed))
                {
                    RenderSettings.fog = fog;
                }


                if (fog)
                {
                    var fogMode = RenderSettings.fogMode;

                    if (notInspectingProperty)
                    {
                        "Fog Color".edit(60, ref fogColor.targetValue).nl();

                        if ("Fog Mode".editEnum(ref fogMode).nl())
                        {
                            RenderSettings.fogMode = fogMode;
                        }
                    }

                    if (fogMode == FogMode.Linear)
                    {
                        fogDistance.enter_Inspect_AsList(ref inspectedProperty, 4).nl(ref changed);
                    }
                    else
                    {
                        fogDensity.enter_Inspect_AsList(ref inspectedProperty, 5).nl(ref changed);
                    }
                }

                if (notInspectingProperty)
                {
                    "Sky Color".edit(60, ref skyColor.targetValue).nl(ref changed);
                }
            }

            pegi.nl();

            if (notInspectingProperty)
            {
                "Water foam mask".edit(ref foamTexture).nl(ref changed);

                if (configs)
                {
                    if (icon.UnLinked.Click("Disconnect config"))
                    {
                        configs = null;
                    }
                    else
                    {
                        "Configurations".edit_List(ref configs.configurations, EditConfiguration).changes(ref changed);
                    }
                }
                else
                {
                    "Configs".edit(90, ref configs);

                    if (icon.Create.Click("Create new Config"))
                    {
                        configs = UnityUtils.CreateScriptableObjectAsset <FoamyWaterConfigs, FoamyWaterConfigs>(
                            "Tools/ToonStyleWater", "Water Config");
                    }

                    pegi.nl();
                }
            }


            if (Application.isPlaying)
            {
                "Changes will not be saved when exiting play mode".writeOneTimeHint("FoamCfgChangeLoss");

                if (ld.linkedPortion < 1)
                {
                    "Lerping {0}".F(ld.dominantParameter).write();
                    ("Each parameter has a transition speed. THis text shows which parameter sets speed for others (the slowest one). " +
                     "If Transition is too slow, increase this parameter's speed").fullWindowDocumentationClick();
                    pegi.nl();
                }
            }

            if (changed)
            {
                UpdateShaderProperties();
#if UNITY_EDITOR
                if (Application.isPlaying == false)
                {
                    SceneView.RepaintAll();
                    UnityEditorInternal.InternalEditorUtility.RepaintAllViews();
                }
#endif
            }

            return(changed);
        }