diff --git a/Assets/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/KHR_texture_transform.cs b/Assets/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/KHR_texture_transform.cs new file mode 100644 index 000000000..37372a2db --- /dev/null +++ b/Assets/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/KHR_texture_transform.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UniJSON; + +namespace UniGLTF +{ + [Serializable] + public class glTF_KHR_texture_transform : JsonSerializableBase + { + public static string ExtensionName + { + get + { + return "KHR_texture_transform"; + } + } + + [JsonSchema(MinItems = 2, MaxItems = 2)] + public float[] offset = new float[2] { 0.0f, 0.0f }; + + public float rotation; + + [JsonSchema(MinItems = 2, MaxItems = 2)] + public float[] scale = new float[2] { 1.0f, 1.0f }; + + [ItemJsonSchema(Minimum = 0)] + public int texCoord; + + protected override void SerializeMembers(GLTFJsonFormatter f) + { + f.KeyValue(() => offset); + f.KeyValue(() => rotation); + f.KeyValue(() => scale); + f.KeyValue(() => texCoord); + } + } + + [Serializable] + public class glTFTextureInfo_extensions : ExtensionsBase + { + [JsonSchema(Required = true)] + public glTF_KHR_texture_transform KHR_texture_transform; + + [JsonSerializeMembers] + void SerializeMembers_unlit(GLTFJsonFormatter f) + { + if (KHR_texture_transform != null) + { + f.KeyValue(() => KHR_texture_transform); + } + } + } +} diff --git a/Assets/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/KHR_texture_transform.cs.meta b/Assets/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/KHR_texture_transform.cs.meta new file mode 100644 index 000000000..692d123b6 --- /dev/null +++ b/Assets/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/KHR_texture_transform.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 04b631e1572e84d47b88aebc3631865b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/VRM/UniGLTF/Scripts/Format/glTFMaterial.cs b/Assets/VRM/UniGLTF/Scripts/Format/glTFMaterial.cs index cb51d9688..7c5b5dec6 100644 --- a/Assets/VRM/UniGLTF/Scripts/Format/glTFMaterial.cs +++ b/Assets/VRM/UniGLTF/Scripts/Format/glTFMaterial.cs @@ -28,13 +28,17 @@ namespace UniGLTF public int texCoord; // empty schemas - public object extensions; + public glTFTextureInfo_extensions extensions; public object extras; protected override void SerializeMembers(GLTFJsonFormatter f) { f.KeyValue(() => index); f.KeyValue(() => texCoord); + if (extensions != null) + { + f.KeyValue(() => extensions); + } } public abstract glTFTextureTypes TextreType { get; }