Enhance tile emission effects and integrate beat synchronization

This commit is contained in:
2025-12-13 00:58:49 +01:00
parent cd28adc8e9
commit 53de85a269
5 changed files with 28 additions and 8 deletions

View File

@@ -28,8 +28,8 @@ namespace Infrastructure.Unity
private MaterialPropertyBlock _propBlock;
private static readonly int ColorProperty = Shader.PropertyToID("_BaseColor");
private static readonly int EmissionIntensity = Shader.PropertyToID("_EmissionIntensity");
private static readonly int EmissionColorProperty = Shader.PropertyToID("_EmissionColor");
private Action<TileViewAdapter> _onReturnToPool;
private void Awake()
@@ -111,7 +111,7 @@ namespace Infrastructure.Unity
public void PulseEmission(float intensity)
{
StartCoroutine(PulseEmissionRoutine(intensity, 0.2f));
StartCoroutine(PulseEmissionRoutine(intensity, 0.1f));
StartCoroutine(PulseScaleRoutine());
}
@@ -176,13 +176,16 @@ namespace Infrastructure.Unity
private IEnumerator PulseEmissionRoutine(float intensity, float duration)
{
meshRenderer.GetPropertyBlock(_propBlock);
var originalIntensity = _propBlock.GetFloat(EmissionIntensity);
_propBlock.SetFloat(EmissionIntensity, intensity);
var baseColor = _propBlock.GetColor(ColorProperty);
var glowingColor = baseColor * intensity;
_propBlock.SetColor(EmissionColorProperty, glowingColor);
meshRenderer.SetPropertyBlock(_propBlock);
yield return new WaitForSeconds(duration);
_propBlock.SetFloat(EmissionIntensity, originalIntensity);
_propBlock.SetColor(EmissionColorProperty, Color.black);
meshRenderer.SetPropertyBlock(_propBlock);
}
}