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); } } }
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); } } }
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); } } }
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(); }
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(); }