Files
2026-02-23 22:24:46 +07:00

30 lines
978 B
C#

using UnityEngine;
namespace AllIn13DShader
{
public class DemoMaterialSinEffect : MonoBehaviour
{
[SerializeField] private Renderer targetRenderer;
[SerializeField] private string propertyName = "_AlphaCutoffValue";
[SerializeField] private float minValue = 0f;
[SerializeField] private float maxValue = 1f;
[SerializeField] private float speed = 1f;
private Material currMaterial;
private int propertyId;
private void Start()
{
currMaterial = new Material(targetRenderer.material);
targetRenderer.material = currMaterial;
propertyId = Shader.PropertyToID(propertyName);
}
private void Update()
{
float sinValue = Mathf.Sin(Time.unscaledTime * speed);
float mappedValue = Mathf.Lerp(minValue, maxValue, (sinValue + 1f) * 0.5f);
currMaterial.SetFloat(propertyId, mappedValue);
}
}
}