From 40a3a6dbe1b18ec98feba086b5970572c96741ac Mon Sep 17 00:00:00 2001 From: Isamu Mogi Date: Sat, 4 Jul 2026 09:11:45 +0900 Subject: [PATCH] =?UTF-8?q?Unity=206.2=20=E4=BB=A5=E9=99=8D=E3=81=A7=20Sha?= =?UTF-8?q?derUtil=20=E3=81=AE=E4=B8=80=E9=83=A8=E3=81=AE=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=90=E3=83=BC=E3=81=8C=20Obsolete=20=E8=AD=A6?= =?UTF-8?q?=E5=91=8A=E3=82=92=E5=87=BA=E3=81=99=E3=81=AE=E3=81=AB=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unity 6.2 以降で、UniVRMが利用している ShaderUtil の次のメンバーが Obsolete となり警告が出るようになりました。 - [GetPropertyCount](https://docs.unity3d.com/6000.2/Documentation/ScriptReference/ShaderUtil.GetPropertyCount.html) - [GetPropertyType](https://docs.unity3d.com/6000.2/Documentation/ScriptReference/ShaderUtil.GetPropertyType.html) - [GetPropertyName](https://docs.unity3d.com/6000.2/Documentation/ScriptReference/ShaderUtil.GetPropertyName.html) - [ShaderPropertyType](https://docs.unity3d.com/6000.2/Documentation/ScriptReference/ShaderUtil.ShaderPropertyType.html) これらは `Shader` インスタンスのメソッドと `UnityEngine.Rendering.ShaderPropertyType` に置き換わりました。これらの置き換え後の項目は全て UniVRM の最小サポートバージョンである Unity 2022.3 LTS にも存在するため、そのまま置き換えました。 発生していた警告は次のようなものでした。 ``` Packages\VRM10\Runtime\Components\Expression\Preview\PreviewMaterialUtil.cs(19,33): warning CS0618: 'ShaderUtil.GetPropertyCount(Shader)' is obsolete: 'Use Shader.GetPropertyCount instead.' Packages\VRM10\Runtime\Components\Expression\Preview\PreviewMaterialUtil.cs(21,32): warning CS0618: 'ShaderUtil.GetPropertyType(Shader, int)' is obsolete: 'Use Shader.GetPropertyType instead.' Packages\VRM10\Runtime\Components\Expression\Preview\PreviewMaterialUtil.cs(22,28): warning CS0618: 'ShaderUtil.GetPropertyName(Shader, int)' is obsolete: 'Use Shader.GetPropertyName instead.' ``` --- .../Editor/UniGLTF/Validation/NameValidator.cs | 8 ++++---- .../BlendShape/BlendShapeClipEditorHelper.cs | 4 ++-- .../VRM/Editor/Format/VRMMaterialValidator.cs | 2 +- .../VRM/Runtime/BlendShape/MeshPreviewItem.cs | 12 ++++++------ .../Runtime/IO/MaterialIO/MToon/ShaderProps.cs | 18 +++++++++--------- .../Expression/Preview/PreviewMaterialUtil.cs | 10 +++++----- Packages/VRM10/Tests/SerializationTests.cs | 16 ++++++++-------- 7 files changed, 35 insertions(+), 35 deletions(-) diff --git a/Packages/UniGLTF/Editor/UniGLTF/Validation/NameValidator.cs b/Packages/UniGLTF/Editor/UniGLTF/Validation/NameValidator.cs index ba29e59d8..dccbd403f 100644 --- a/Packages/UniGLTF/Editor/UniGLTF/Validation/NameValidator.cs +++ b/Packages/UniGLTF/Editor/UniGLTF/Validation/NameValidator.cs @@ -34,14 +34,14 @@ namespace UniGLTF foreach (var material in materials) { var shader = material.shader; - int propertyCount = ShaderUtil.GetPropertyCount(shader); + int propertyCount = shader.GetPropertyCount(); for (int i = 0; i < propertyCount; i++) { - if (ShaderUtil.GetPropertyType(shader, i) == ShaderUtil.ShaderPropertyType.TexEnv) + if (shader.GetPropertyType(i) == UnityEngine.Rendering.ShaderPropertyType.Texture) { - if ((material.GetTexture(ShaderUtil.GetPropertyName(shader, i)) != null)) + if (material.GetTexture(shader.GetPropertyName(i)) != null) { - var textureName = material.GetTexture(ShaderUtil.GetPropertyName(shader, i)).name; + var textureName = material.GetTexture(shader.GetPropertyName(i)).name; if (!textureNameList.Contains(textureName)) textureNameList.Add(textureName); } diff --git a/Packages/VRM/Editor/BlendShape/BlendShapeClipEditorHelper.cs b/Packages/VRM/Editor/BlendShape/BlendShapeClipEditorHelper.cs index c073c82ca..9e469814d 100644 --- a/Packages/VRM/Editor/BlendShape/BlendShapeClipEditorHelper.cs +++ b/Packages/VRM/Editor/BlendShape/BlendShapeClipEditorHelper.cs @@ -93,7 +93,7 @@ namespace VRM { switch (propItem.PropertyType) { - case ShaderUtil.ShaderPropertyType.Color: + case UnityEngine.Rendering.ShaderPropertyType.Color: { property.FindPropertyRelative("BaseValue").vector4Value = propItem.DefaultValues; @@ -107,7 +107,7 @@ namespace VRM } break; - case ShaderUtil.ShaderPropertyType.TexEnv: + case UnityEngine.Rendering.ShaderPropertyType.Texture: { property.FindPropertyRelative("BaseValue").vector4Value = propItem.DefaultValues; diff --git a/Packages/VRM/Editor/Format/VRMMaterialValidator.cs b/Packages/VRM/Editor/Format/VRMMaterialValidator.cs index f2734ed48..cd73146c3 100644 --- a/Packages/VRM/Editor/Format/VRMMaterialValidator.cs +++ b/Packages/VRM/Editor/Format/VRMMaterialValidator.cs @@ -24,7 +24,7 @@ namespace VRM if (m.shader.name == "VRM/MToon") { // [Unity列挙] - // * UnityEditor.ShaderUtil により Shader の Property を列挙する。Editor専用。 + // * Shader の Property を列挙する。Editor専用。 // * あらかじめEditorで実行して property 一覧をハードコーディングしてある `Assets\VRMShaders\VRM\IO\Runtime\VRM\PreExportShaders_VRM.cs` 界隈。 // * 今は "VRM/MToon" のみ // diff --git a/Packages/VRM/Runtime/BlendShape/MeshPreviewItem.cs b/Packages/VRM/Runtime/BlendShape/MeshPreviewItem.cs index 4a0dd0592..c757adced 100644 --- a/Packages/VRM/Runtime/BlendShape/MeshPreviewItem.cs +++ b/Packages/VRM/Runtime/BlendShape/MeshPreviewItem.cs @@ -14,7 +14,7 @@ namespace VRM [Serializable] public struct PropItem { - public ShaderUtil.ShaderPropertyType PropertyType; + public UnityEngine.Rendering.ShaderPropertyType PropertyType; public Vector4 DefaultValues; } #endif @@ -42,14 +42,14 @@ namespace VRM #if UNITY_EDITOR var propNames = new List(); - for (int i = 0; i < ShaderUtil.GetPropertyCount(material.shader); ++i) + for (int i = 0; i < material.shader.GetPropertyCount(); ++i) { - var propType = ShaderUtil.GetPropertyType(material.shader, i); - var name = ShaderUtil.GetPropertyName(material.shader, i); + var propType = material.shader.GetPropertyType(i); + var name = material.shader.GetPropertyName(i); switch (propType) { - case ShaderUtil.ShaderPropertyType.Color: + case UnityEngine.Rendering.ShaderPropertyType.Color: // 色 item.PropMap.Add(name, new PropItem { @@ -59,7 +59,7 @@ namespace VRM propNames.Add(name); break; - case ShaderUtil.ShaderPropertyType.TexEnv: + case UnityEngine.Rendering.ShaderPropertyType.Texture: // テクスチャ { name += "_ST"; diff --git a/Packages/VRM/Runtime/IO/MaterialIO/MToon/ShaderProps.cs b/Packages/VRM/Runtime/IO/MaterialIO/MToon/ShaderProps.cs index 805b62573..3145d19c5 100644 --- a/Packages/VRM/Runtime/IO/MaterialIO/MToon/ShaderProps.cs +++ b/Packages/VRM/Runtime/IO/MaterialIO/MToon/ShaderProps.cs @@ -33,15 +33,15 @@ namespace VRM public ShaderProperty[] Properties; #if UNITY_EDITOR - static ShaderPropertyType ConvType(ShaderUtil.ShaderPropertyType src) + static ShaderPropertyType ConvType(UnityEngine.Rendering.ShaderPropertyType src) { switch (src) { - case ShaderUtil.ShaderPropertyType.TexEnv: return ShaderPropertyType.TexEnv; - case ShaderUtil.ShaderPropertyType.Color: return ShaderPropertyType.Color; - case ShaderUtil.ShaderPropertyType.Float: return ShaderPropertyType.Float; - case ShaderUtil.ShaderPropertyType.Range: return ShaderPropertyType.Range; - case ShaderUtil.ShaderPropertyType.Vector: return ShaderPropertyType.Vector; + case UnityEngine.Rendering.ShaderPropertyType.Texture: return ShaderPropertyType.TexEnv; + case UnityEngine.Rendering.ShaderPropertyType.Color: return ShaderPropertyType.Color; + case UnityEngine.Rendering.ShaderPropertyType.Float: return ShaderPropertyType.Float; + case UnityEngine.Rendering.ShaderPropertyType.Range: return ShaderPropertyType.Range; + case UnityEngine.Rendering.ShaderPropertyType.Vector: return ShaderPropertyType.Vector; default: throw new NotImplementedException(); } } @@ -49,10 +49,10 @@ namespace VRM public static ShaderProps FromShader(Shader shader) { var properties = new List(); - for (int i = 0; i < ShaderUtil.GetPropertyCount(shader); ++i) + for (int i = 0; i < shader.GetPropertyCount(); ++i) { - var name = ShaderUtil.GetPropertyName(shader, i); - var propType = ShaderUtil.GetPropertyType(shader, i); + var name = shader.GetPropertyName(i); + var propType = shader.GetPropertyType(i); properties.Add(new ShaderProperty(name, ConvType(propType))); } diff --git a/Packages/VRM10/Runtime/Components/Expression/Preview/PreviewMaterialUtil.cs b/Packages/VRM10/Runtime/Components/Expression/Preview/PreviewMaterialUtil.cs index 544bfc689..487097bb8 100644 --- a/Packages/VRM10/Runtime/Components/Expression/Preview/PreviewMaterialUtil.cs +++ b/Packages/VRM10/Runtime/Components/Expression/Preview/PreviewMaterialUtil.cs @@ -16,14 +16,14 @@ namespace UniVRM10 var propNames = new List(); var hasError = false; - for (int i = 0; i < ShaderUtil.GetPropertyCount(material.shader); ++i) + for (int i = 0; i < material.shader.GetPropertyCount(); ++i) { - var propType = ShaderUtil.GetPropertyType(material.shader, i); - var name = ShaderUtil.GetPropertyName(material.shader, i); + var propType = material.shader.GetPropertyType(i); + var name = material.shader.GetPropertyName(i); switch (propType) { - case ShaderUtil.ShaderPropertyType.Color: + case UnityEngine.Rendering.ShaderPropertyType.Color: // 色 { if (!PreviewMaterialItem.TryGetBindType(name, out var bindType)) @@ -50,7 +50,7 @@ namespace UniVRM10 } break; - case ShaderUtil.ShaderPropertyType.TexEnv: + case UnityEngine.Rendering.ShaderPropertyType.Texture: break; } } diff --git a/Packages/VRM10/Tests/SerializationTests.cs b/Packages/VRM10/Tests/SerializationTests.cs index 1b7f2c6de..c4c5d89b2 100644 --- a/Packages/VRM10/Tests/SerializationTests.cs +++ b/Packages/VRM10/Tests/SerializationTests.cs @@ -75,18 +75,18 @@ namespace UniVRM10 Assert.AreEqual(lhs.name, rhs.name); Assert.AreEqual(lhs.shader, rhs.shader); var sb = new StringBuilder(); - for (int i = 0; i < ShaderUtil.GetPropertyCount(lhs.shader); ++i) + for (int i = 0; i < lhs.shader.GetPropertyCount(); ++i) { - var prop = ShaderUtil.GetPropertyName(lhs.shader, i); + var prop = lhs.shader.GetPropertyName(i); if (s_ignoreProps.Contains(prop)) { continue; } - switch (ShaderUtil.GetPropertyType(lhs.shader, i)) + switch (lhs.shader.GetPropertyType(i)) { - case UnityEditor.ShaderUtil.ShaderPropertyType.Color: - case UnityEditor.ShaderUtil.ShaderPropertyType.Vector: + case UnityEngine.Rendering.ShaderPropertyType.Color: + case UnityEngine.Rendering.ShaderPropertyType.Vector: { var l = lhs.GetVector(prop); var r = rhs.GetVector(prop); @@ -97,8 +97,8 @@ namespace UniVRM10 } break; - case UnityEditor.ShaderUtil.ShaderPropertyType.Float: - case UnityEditor.ShaderUtil.ShaderPropertyType.Range: + case UnityEngine.Rendering.ShaderPropertyType.Float: + case UnityEngine.Rendering.ShaderPropertyType.Range: { var l = lhs.GetFloat(prop); var r = rhs.GetFloat(prop); @@ -109,7 +109,7 @@ namespace UniVRM10 } break; - case UnityEditor.ShaderUtil.ShaderPropertyType.TexEnv: + case UnityEngine.Rendering.ShaderPropertyType.Texture: { var l = lhs.GetTextureOffset(prop); var r = rhs.GetTextureOffset(prop);