From b82da95b5181ac8bbae38efb13e950d5e88a4caa Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 23 Oct 2020 13:08:43 +0800 Subject: =?UTF-8?q?*=E7=A7=BB=E5=8A=A8amplify=20shader=20editor=E5=88=B0th?= =?UTF-8?q?ird=20party=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/ShaderParameterSetter.cs | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Assets/ThirdParty/MaterializeFX/MaterializationFX/Scripts/ShaderParameterSetter.cs (limited to 'Assets/ThirdParty/MaterializeFX/MaterializationFX/Scripts/ShaderParameterSetter.cs') diff --git a/Assets/ThirdParty/MaterializeFX/MaterializationFX/Scripts/ShaderParameterSetter.cs b/Assets/ThirdParty/MaterializeFX/MaterializationFX/Scripts/ShaderParameterSetter.cs new file mode 100644 index 00000000..47b1832a --- /dev/null +++ b/Assets/ThirdParty/MaterializeFX/MaterializationFX/Scripts/ShaderParameterSetter.cs @@ -0,0 +1,37 @@ +using UnityEngine; + +namespace MaterializationFX.Scripts +{ + internal sealed class ShaderParameterSetter + { + private Renderer[] _rends; + + public void Init(GameObject targetObject, string shaderName, bool modifyChildren) + { + _rends = !modifyChildren + ? new[] {targetObject.GetComponent()} + : targetObject.GetComponentsInChildren(); + + foreach (var rend in _rends) + rend.material.shader = Shader.Find(shaderName); + } + + public void SetFloat(string propertyName, float value) + { + foreach (var rend in _rends) + rend.material.SetFloat(propertyName, value); + } + + public void SetInt(string propertyName, int value) + { + foreach (var rend in _rends) + rend.material.SetInt(propertyName, value); + } + + public void SetVector(string propertyName, Vector3 value) + { + foreach (var rend in _rends) + rend.material.SetVector(propertyName, value); + } + } +} \ No newline at end of file -- cgit v1.1-26-g67d0