using System.Collections.Generic; using ClusterVR.CreatorKit.Editor.Repository; using UnityEngine; using VGltf; namespace ClusterVR.CreatorKit.Editor.Validator.GltfItemExporter { public sealed class AccessoryValidator : IGltfValidator { const int MaxTrianglesCount = 2000; const int MaxTotalMeshCount = 8; const int MaxMaterialsCount = 2; const int MaxTexturesCount = 3; public IEnumerable Validate(GameObject gameObject) { var validationMessages = new List(); validationMessages.AddRange(GltfValidator.ValidateName(gameObject)); return validationMessages; } public IEnumerable Validate(GltfContainer gltfContainer) { var validationMessages = new List(); validationMessages.AddRange(GltfValidator.ValidateScene(gltfContainer)); validationMessages.AddRange(GltfValidator.ValidateNode(gltfContainer)); validationMessages.AddRange(GltfValidator.ValidateMesh(gltfContainer, MaxTrianglesCount)); // 8Mesh, 2subMeshまで、skinnedMesh不可、TRIANGLESのみ validationMessages.AddRange(GltfValidator.ValidateTotalMeshNode(gltfContainer, MaxTotalMeshCount)); // のべmesh数8まで validationMessages.AddRange(GltfValidator.ValidateMaterial(gltfContainer, MaxMaterialsCount)); // 2マテリアルまで validationMessages.AddRange(GltfValidator.ValidateTexture(gltfContainer, MaxTexturesCount)); // 3tex、8192pxまで return validationMessages; } } }