Enhance tile emission effects and integrate beat synchronization
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user