ApplySettings() 공개 메소드

public ApplySettings ( ) : void
리턴 void
예제 #1
0
    void OnGUI()
    {
#if  UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5UNITY_4_0 || UNITY_4_0_1 || UNITY_4_1 || UNITY_4_2
        //Layout fix for older versions?
#else
        EditorGUIUtility.labelWidth = 100;
#endif
        //Ctrl + w to close
        if (Event.current.Equals(Event.KeyboardEvent("^w")))
        {
            Close();
            GUIUtility.ExitGUI();
        }

        /*
         * SETUP
         */
#if UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
        EditorGUIUtility.LookLikeControls();
#endif
        ObjectMerge.alt = false;
        //Adjust colWidth as the window resizes
        colWidth = (position.width - UniMergeConfig.midWidth * 2 - UniMergeConfig.margin) / 2;
        if (mine == null || theirs == null ||
            mine.GetType() != typeof(Object) || mine.GetType() != typeof(Object)
            )             //|| !AssetDatabase.GetAssetPath(mine).Contains(".unity") || !AssetDatabase.GetAssetPath(theirs).Contains(".unity"))
        {
            merged = GUI.enabled = false;
        }
        if (GUILayout.Button("Merge"))
        {
            Merge(mine, theirs);
            GUIUtility.ExitGUI();
        }
        GUI.enabled = merged;
        GUILayout.BeginHorizontal();
        {
            GUI.enabled = mineContainer;
            if (!GUI.enabled)
            {
                merged = false;
            }
            if (GUILayout.Button("Unpack Mine"))
            {
                DestroyImmediate(theirsContainer);
                List <Transform> tmp = new List <Transform>();
                foreach (Transform t in mineContainer.transform)
                {
                    tmp.Add(t);
                }
                foreach (Transform t in tmp)
                {
                    t.parent = null;
                }
                DestroyImmediate(mineContainer);
                mySceneData.ApplySettings();
            }
            GUI.enabled = theirsContainer;
            if (!GUI.enabled)
            {
                merged = false;
            }
            if (GUILayout.Button("Unpack Theirs"))
            {
                DestroyImmediate(mineContainer);
                List <Transform> tmp = new List <Transform>();
                foreach (Transform t in theirsContainer.transform)
                {
                    tmp.Add(t);
                }
                foreach (Transform t in tmp)
                {
                    t.parent = null;
                }
                DestroyImmediate(theirsContainer);
                theirSceneData.ApplySettings();
            }
        }
        GUILayout.EndHorizontal();

        GUI.enabled = true;
        ObjectMerge.DrawRowHeight();

        GUILayout.BeginHorizontal();
        {
            GUILayout.BeginVertical(GUILayout.Width(colWidth));
            {
#if UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
                mine = EditorGUILayout.ObjectField("Mine", mine, typeof(Object));
#else
                mine = EditorGUILayout.ObjectField("Mine", mine, typeof(Object), true);
#endif
            }
            GUILayout.EndVertical();
            GUILayout.Space(UniMergeConfig.midWidth * 2);
            GUILayout.BeginVertical(GUILayout.Width(colWidth));
            {
#if UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
                theirs = EditorGUILayout.ObjectField("Theirs", theirs, typeof(Object));
#else
                theirs = EditorGUILayout.ObjectField("Theirs", theirs, typeof(Object), true);
#endif
            }
            GUILayout.EndVertical();
        }
        GUILayout.EndHorizontal();
        if (mine == null || theirs == null)
        {
            merged = false;
        }
        if (merged)
        {
            scroll = GUILayout.BeginScrollView(scroll);
            //Fog
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.fog == theirSceneData.fog;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.fog = EditorGUILayout.Toggle("Fog", mySceneData.fog);
                    }
                },
                leftButton = delegate {
                    mySceneData.fog = theirSceneData.fog;
                },
                rightButton = delegate {
                    theirSceneData.fog = mySceneData.fog;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.fog = EditorGUILayout.Toggle("Fog", theirSceneData.fog);
                    }
                },
                drawButtons = mine && theirs
            });
            //Fog Color
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.fogColor == theirSceneData.fogColor;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.fogColor = EditorGUILayout.ColorField("Fog Color", mySceneData.fogColor);
                    }
                },
                leftButton = delegate {
                    mySceneData.fogColor = theirSceneData.fogColor;
                },
                rightButton = delegate {
                    theirSceneData.fogColor = mySceneData.fogColor;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.fogColor = EditorGUILayout.ColorField("Fog Color", theirSceneData.fogColor);
                    }
                },
                drawButtons = mine && theirs
            });
            //Fog Mode
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.fogMode == theirSceneData.fogMode;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.fogMode = (FogMode)EditorGUILayout.EnumPopup("Fog Mode", mySceneData.fogMode);
                    }
                },
                leftButton = delegate {
                    mySceneData.fogMode = theirSceneData.fogMode;
                },
                rightButton = delegate {
                    theirSceneData.fogMode = mySceneData.fogMode;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.fogMode = (FogMode)EditorGUILayout.EnumPopup("Fog Mode", theirSceneData.fogMode);
                    }
                },
                drawButtons = mine && theirs
            });
            //Fog Density
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.fogDensity == theirSceneData.fogDensity;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.fogDensity = EditorGUILayout.FloatField("Linear Density", mySceneData.fogDensity);
                    }
                },
                leftButton = delegate {
                    mySceneData.fogDensity = theirSceneData.fogDensity;
                },
                rightButton = delegate {
                    theirSceneData.fogDensity = mySceneData.fogDensity;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.fogDensity = EditorGUILayout.FloatField("Linear Density", theirSceneData.fogDensity);
                    }
                },
                drawButtons = mine && theirs
            });
            //Linear Fog Start
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.fogStartDistance == theirSceneData.fogStartDistance;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.fogStartDistance = EditorGUILayout.FloatField("Linear Fog Start", mySceneData.fogStartDistance);
                    }
                },
                leftButton = delegate {
                    mySceneData.fogStartDistance = theirSceneData.fogStartDistance;
                },
                rightButton = delegate {
                    theirSceneData.fogStartDistance = mySceneData.fogStartDistance;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.fogStartDistance = EditorGUILayout.FloatField("Linear Fog Start", theirSceneData.fogStartDistance);
                    }
                },
                drawButtons = mine && theirs
            });
            //Linear Fog End
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.fogEndDistance == theirSceneData.fogEndDistance;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.fogEndDistance = EditorGUILayout.FloatField("Linear Fog End", mySceneData.fogEndDistance);
                    }
                },
                leftButton = delegate {
                    mySceneData.fogEndDistance = theirSceneData.fogEndDistance;
                },
                rightButton = delegate {
                    theirSceneData.fogEndDistance = mySceneData.fogEndDistance;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.fogEndDistance = EditorGUILayout.FloatField("Linear Fog End", theirSceneData.fogEndDistance);
                    }
                },
                drawButtons = mine && theirs
            });
            //Ambient Light
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.ambientLight == theirSceneData.ambientLight;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.ambientLight = EditorGUILayout.ColorField("Ambient Light", mySceneData.ambientLight);
                    }
                },
                leftButton = delegate {
                    mySceneData.ambientLight = theirSceneData.ambientLight;
                },
                rightButton = delegate {
                    theirSceneData.ambientLight = mySceneData.ambientLight;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.ambientLight = EditorGUILayout.ColorField("Ambient Light", theirSceneData.ambientLight);
                    }
                },
                drawButtons = mine && theirs
            });
            //Skybox
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.skybox == theirSceneData.skybox;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
#if UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
                    { mySceneData.skybox = (Material)EditorGUILayout.ObjectField("Skybox Material", mySceneData.skybox, typeof(Material)); }
#else
                    { mySceneData.skybox = (Material)EditorGUILayout.ObjectField("Skybox Material", mySceneData.skybox, typeof(Material), false); }
#endif
                },
                leftButton = delegate {
                    mySceneData.skybox = theirSceneData.skybox;
                },
                rightButton = delegate {
                    theirSceneData.skybox = mySceneData.skybox;
                },
                right = delegate {
                    if (theirs)
#if UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
                    { theirSceneData.skybox = (Material)EditorGUILayout.ObjectField("Skybox Material", theirSceneData.skybox, typeof(Material)); }
#else
                    { theirSceneData.skybox = (Material)EditorGUILayout.ObjectField("Skybox Material", theirSceneData.skybox, typeof(Material), false); }
#endif
                },
                drawButtons = mine && theirs
            });
            //Halo Strength
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.haloStrength == theirSceneData.haloStrength;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.haloStrength = EditorGUILayout.FloatField("Halo Strength", mySceneData.haloStrength);
                    }
                },
                leftButton = delegate {
                    mySceneData.haloStrength = theirSceneData.haloStrength;
                },
                rightButton = delegate {
                    theirSceneData.haloStrength = mySceneData.haloStrength;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.haloStrength = EditorGUILayout.FloatField("Halo Strength", theirSceneData.haloStrength);
                    }
                },
                drawButtons = mine && theirs
            });
            //Flare Strength
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.flareStrength == theirSceneData.flareStrength;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.flareStrength = EditorGUILayout.FloatField("Flare Strength", mySceneData.flareStrength);
                    }
                },
                leftButton = delegate {
                    mySceneData.flareStrength = theirSceneData.flareStrength;
                },
                rightButton = delegate {
                    theirSceneData.flareStrength = mySceneData.flareStrength;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.flareStrength = EditorGUILayout.FloatField("Flare Strength", theirSceneData.flareStrength);
                    }
                },
                drawButtons = mine && theirs
            });
            //Flare Fade Speed
            ObjectMerge.DrawGenericRow(new ObjectMerge.GenericRowArguments {
                indent   = 0,
                colWidth = colWidth,
                compare  = delegate {
                    bool same = GenericCompare();
                    if (same)
                    {
                        same = mySceneData.flareFadeSpeed == theirSceneData.flareFadeSpeed;
                    }
                    return(same);
                },
                left = delegate {
                    if (mine)
                    {
                        mySceneData.flareFadeSpeed = EditorGUILayout.FloatField("Flare Fade Speed", mySceneData.flareFadeSpeed);
                    }
                },
                leftButton = delegate {
                    mySceneData.flareFadeSpeed = theirSceneData.flareFadeSpeed;
                },
                rightButton = delegate {
                    theirSceneData.flareFadeSpeed = mySceneData.flareFadeSpeed;
                },
                right = delegate {
                    if (theirs)
                    {
                        theirSceneData.flareFadeSpeed = EditorGUILayout.FloatField("Flare Fade Speed", theirSceneData.flareFadeSpeed);
                    }
                },
                drawButtons = mine && theirs
            });
            GUILayout.EndScrollView();
        }
    }