From a61d9e803c245752441a6ba0091c985d5c0358cd Mon Sep 17 00:00:00 2001 From: raiti-chan Date: Fri, 2 Dec 2022 15:32:53 +0900 Subject: [PATCH] Add Validate Method --- .../nadena.dev.modular-avatar/Editor/Util.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Packages/nadena.dev.modular-avatar/Editor/Util.cs b/Packages/nadena.dev.modular-avatar/Editor/Util.cs index 6c0551f9..21a608a1 100644 --- a/Packages/nadena.dev.modular-avatar/Editor/Util.cs +++ b/Packages/nadena.dev.modular-avatar/Editor/Util.cs @@ -27,6 +27,7 @@ using System.Reflection; using JetBrains.Annotations; using UnityEditor; using UnityEditor.Animations; +using UnityEngine; using VRC.SDKBase.Editor.BuildPipeline; using Object = UnityEngine.Object; @@ -138,5 +139,33 @@ namespace nadena.dev.modular_avatar.core.editor return avatarValidation; } + + private const int MAX_EXPRESSION_TEXTURE_SIZE = 256; + + public enum ValidateExpressionMenuIconResult + { + Success, + TooLarge, + Uncompressed + } + + public static ValidateExpressionMenuIconResult ValidateExpressionMenuIcon(Texture2D icon) + { + string path = AssetDatabase.GetAssetPath(icon); + TextureImporter importer = AssetImporter.GetAtPath(path) as TextureImporter; + if (importer == null) return ValidateExpressionMenuIconResult.Success; + TextureImporterPlatformSettings settings = importer.GetDefaultPlatformTextureSettings(); + + // Max texture size; + if ((icon.width > MAX_EXPRESSION_TEXTURE_SIZE || icon.height > MAX_EXPRESSION_TEXTURE_SIZE) && + settings.maxTextureSize > MAX_EXPRESSION_TEXTURE_SIZE) return ValidateExpressionMenuIconResult.TooLarge; + + // Compression + if (settings.textureCompression == TextureImporterCompression.Uncompressed) return ValidateExpressionMenuIconResult.Uncompressed; + return ValidateExpressionMenuIconResult.Success; + } + + + } } \ No newline at end of file