Пример #1
0
    private void EnsureSpriteRepeated(SerializedProperty spriteSP) {
        var sprite = (Sprite) spriteSP.objectReferenceValue;
        if (sprite == null) {
            return;
        }

        if (sprite.packed) {
            MadGUI.Error("This sprite shouldn't be packed! Please select it and remove the Packing Tag.");
            return;
        }

        if (sprite.rect.width != sprite.texture.width || sprite.rect.height != sprite.texture.height) {
            MadGUI.Error("This sprite shouldn't be packed! Please use the single texture instead.");
            return;
        }

        var texture = sprite.texture;

        var assetPath = AssetDatabase.GetAssetPath(texture);
        var importer = AssetImporter.GetAtPath(assetPath) as TextureImporter;
        if (importer.wrapMode != TextureWrapMode.Repeat) {
            if (MadGUI.ErrorFix("Sprite wrap mode must be set to Repeat", "Fix Now")) {
#if UNITY_5_5_OR_NEWER
                importer.textureType = TextureImporterType.Default;
#else
                importer.textureType = TextureImporterType.Advanced;
#endif
                importer.wrapMode = TextureWrapMode.Repeat;
                AssetDatabase.ImportAsset(assetPath, ImportAssetOptions.ForceUpdate);
            }
        }

    }
Пример #2
0
        protected void EnsureFullRect(SerializedProperty spriteObject)
        {
            var sprite = (Sprite)spriteObject.objectReferenceValue;

            if (sprite == null)
            {
                return;
            }

            var texture = sprite.texture;

            var assetPath = AssetDatabase.GetAssetPath(texture);
            var importer  = AssetImporter.GetAtPath(assetPath) as TextureImporter;

            var textureImporterSettings = new TextureImporterSettings();

            importer.ReadTextureSettings(textureImporterSettings);

            if (textureImporterSettings.spriteMeshType != SpriteMeshType.FullRect)
            {
                if (MadGUI.ErrorFix("Texture Mesh Type must be set to Full Rect", "Fix Now"))
                {
                    textureImporterSettings.spriteMeshType = SpriteMeshType.FullRect;
                    importer.SetTextureSettings(textureImporterSettings);
                    AssetDatabase.ImportAsset(assetPath, ImportAssetOptions.ForceUpdate);
                }
            }
        }
Пример #3
0
        protected void CheckTextureIsReadable(Texture2D texture)
        {
            if (texture == null)
            {
                return;
            }

            var path     = AssetDatabase.GetAssetPath(texture);
            var importer = TextureImporter.GetAtPath(path) as TextureImporter;

            if ((importer.textureType !=

#if UNITY_5_5_OR_NEWER
                 TextureImporterType.Default
#else
                 TextureImporterType.Advanced
#endif

                 && importer.textureType != TextureImporterType.GUI) ||
                !importer.isReadable || importer.npotScale != TextureImporterNPOTScale.None)
            {
                if (MadGUI.ErrorFix("This texture must be set to Advanced/Readable without power of 2."))
                {
#if UNITY_5_5_OR_NEWER
                    importer.textureType = TextureImporterType.Default;
#else
                    importer.textureType = TextureImporterType.Advanced;
#endif
                    importer.isReadable = true;
                    importer.npotScale  = TextureImporterNPOTScale.None;

                    AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate);
                }
            }
        }
Пример #4
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            var t        = target as SimpleEvent;
            var collider = t.GetComponent <Collider>();

            if (collider != null)
            {
                if (!collider.isTrigger)
                {
                    if (MadGUI.ErrorFix("This game object collider must be marked as 'Trigger'. Change it?"))
                    {
                        collider.isTrigger = true;
                    }
                }
            }
            else
            {
                if (MadGUI.ErrorFix("This game object doesn't have a collider. Attach it now?"))
                {
                    collider           = t.gameObject.AddComponent <MeshCollider>();
                    collider.isTrigger = true;
                }
            }

            MadGUI.PropertyField(energyBar, "Energy Bar");
            MadGUI.PropertyField(targetType, "Trigger With");

            MadGUI.Indent(() => {
                switch ((SimpleEvent.Target)targetType.enumValueIndex)
                {
                case SimpleEvent.Target.GameObjects:
                    GUITargetGameObjects();
                    break;

                case SimpleEvent.Target.Tags:
                    GUITargetTags();
                    break;

                default:
                    Debug.LogError("Unknown option: " + targetType.enumValueIndex);
                    break;
                }
            });

            if (MadGUI.Foldout("On Trigger Enter", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerEnterAction, false);
                });
            }

            if (MadGUI.Foldout("On Trigger Stay", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerStayAction, true);
                });
            }

            if (MadGUI.Foldout("On Trigger Leave", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerLeaveAction, false);
                });
            }

            serializedObject.ApplyModifiedProperties();
        }
Пример #5
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            var t        = target as SimpleEvent;
            var collider = t.GetComponent <Collider>();

#if !UNITY_4_1 && !UNITY_4_2
            var collider2d = t.GetComponent <Collider2D>();
#endif

            if (collider != null
#if !UNITY_4_1 && !UNITY_4_2
                || collider2d != null
#endif
                )
            {
                if (collider != null)
                {
                    if (!collider.isTrigger)
                    {
                        if (MadGUI.ErrorFix("This game object collider must be marked as 'Trigger'. Change it?"))
                        {
                            collider.isTrigger = true;
                        }
                    }
                }
#if !UNITY_4_1 && !UNITY_4_2
                else
                {
                    if (!collider2d.isTrigger)
                    {
                        if (MadGUI.ErrorFix("This game object collider must be marked as 'Trigger'. Change it?"))
                        {
                            collider2d.isTrigger = true;
                        }
                    }
                }
#endif
            }
            else
            {
                if (MadGUI.ErrorFix("This game object doesn't have a collider. Attach it now?"))
                {
#if !UNITY_4_1 && !UNITY_4_2
                    if (EditorUtility.DisplayDialog("Choose Collider Type", "Which collider type do you want to create? 2D or 3D?", "2D", "3D"))
                    {
                        var c = t.gameObject.AddComponent <BoxCollider2D>();
                        c.isTrigger = true;
                    }
                    else
                    {
#endif
                    var c = t.gameObject.AddComponent <BoxCollider>();
                    c.isTrigger = true;

#if !UNITY_4_1 && !UNITY_4_2
                }
#endif
                }
            }

            MadGUI.PropertyField(energyBar, "Energy Bar");
            MadGUI.PropertyField(targetType, "Trigger With");

            MadGUI.Indent(() => {
                switch ((SimpleEvent.Target)targetType.enumValueIndex)
                {
                case SimpleEvent.Target.GameObjects:
                    GUITargetGameObjects();
                    break;

                case SimpleEvent.Target.Tags:
                    GUITargetTags();
                    break;

                default:
                    Debug.LogError("Unknown option: " + targetType.enumValueIndex);
                    break;
                }
            });

            if (MadGUI.Foldout("On Trigger Enter", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerEnterAction, false);
                });
            }

            if (MadGUI.Foldout("On Trigger Stay", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerStayAction, true);
                });
            }

            if (MadGUI.Foldout("On Trigger Leave", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerLeaveAction, false);
                });
            }

            serializedObject.ApplyModifiedProperties();
        }