From 917e9e0b320775634dc2e710f7deac74fd0822f0 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 22 Oct 2020 23:30:02 +0800 Subject: * amplify shader editor --- .../Scripts/ShaderParameterSetter.cs | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Assets/MaterializeFX/MaterializationFX/Scripts/ShaderParameterSetter.cs (limited to 'Assets/MaterializeFX/MaterializationFX/Scripts/ShaderParameterSetter.cs') diff --git a/Assets/MaterializeFX/MaterializationFX/Scripts/ShaderParameterSetter.cs b/Assets/MaterializeFX/MaterializationFX/Scripts/ShaderParameterSetter.cs new file mode 100644 index 00000000..47b1832a --- /dev/null +++ b/Assets/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