Exemplo n.º 1
0
        //----- method -----

        protected override void AddGraphicComponentOnInit()
        {
            dicingImage = gameObject.AddComponent <DicingImage>();
        }
Exemplo n.º 2
0
        //----- property -----

        //----- method -----

        public override void OnInspectorGUI()
        {
            instance = target as DicingImage;

            EditorGUILayout.Separator();

            EditorGUI.BeginChangeCheck();

            var dicingTexture = EditorLayoutTools.ObjectField("DicingTexture", instance.DicingTexture, false);

            if (EditorGUI.EndChangeCheck())
            {
                UnityEditorUtility.RegisterUndo("DicingImageInspector-Undo", instance);
                instance.DicingTexture = dicingTexture;
            }

            // Color.
            EditorGUI.BeginChangeCheck();

            var color = EditorGUILayout.ColorField("Color", instance.Color, GUILayout.Height(18f));

            if (EditorGUI.EndChangeCheck())
            {
                UnityEditorUtility.RegisterUndo("DicingImageInspector-Undo", instance);
                instance.Color = color;
            }

            // Material.
            EditorGUI.BeginChangeCheck();

            var material = instance.Material.name == "Default UI Material" ? null : instance.Material;

            material = EditorLayoutTools.ObjectField("Material", material, false, GUILayout.Height(18f));

            if (EditorGUI.EndChangeCheck())
            {
                UnityEditorUtility.RegisterUndo("DicingImageInspector-Undo", instance);
                instance.Material = material;
            }

            // RaycastTarget.
            EditorGUI.BeginChangeCheck();

            var raycastTarget = EditorGUILayout.Toggle("RaycastTarget", instance.RaycastTarget);

            if (EditorGUI.EndChangeCheck())
            {
                UnityEditorUtility.RegisterUndo("DicingImageInspector-Undo", instance);
                instance.RaycastTarget = raycastTarget;
            }

            // CrossFade.
            EditorGUI.BeginChangeCheck();

            var crossFade = EditorGUILayout.Toggle("CrossFade", instance.CrossFade, GUILayout.Height(18f));

            if (EditorGUI.EndChangeCheck())
            {
                UnityEditorUtility.RegisterUndo("DicingImageInspector-Undo", instance);
                instance.CrossFade = crossFade;
            }

            if (instance.CrossFade)
            {
                EditorGUI.BeginChangeCheck();

                var crossFadeTime = EditorGUILayout.FloatField("FadeTime", instance.CrossFadeTime, GUILayout.Height(18f));

                if (EditorGUI.EndChangeCheck())
                {
                    UnityEditorUtility.RegisterUndo("DicingImageInspector-Undo", instance);
                    instance.CrossFadeTime = crossFadeTime;
                }
            }

            GUILayout.Space(2f);

            if (instance.DicingTexture != null)
            {
                using (new EditorGUILayout.HorizontalScope())
                {
                    if (EditorLayoutTools.DrawPrefixButton("Sprite"))
                    {
                        Action <string> onSelection = x =>
                        {
                            instance.PatternName = x;

                            EditorUtility.SetDirty(instance);
                            InternalEditorUtility.RepaintAllViews();
                        };

                        var selection = instance.Current != null ? instance.Current.textureName : null;

                        DicingSpriteSelector.Show(instance.DicingTexture, selection, onSelection, null);
                    }

                    if (instance.Current != null)
                    {
                        EditorGUILayout.SelectableLabel(instance.Current.textureName, new GUIStyle("TextArea"), GUILayout.Height(18f));
                    }
                }

                GUILayout.Space(5f);

                if (instance.Current != null)
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        GUILayout.Space(EditorGUIUtility.labelWidth);

                        if (GUILayout.Button("SetNativeSize"))
                        {
                            instance.SetNativeSize();
                        }
                    }
                }
            }
        }