Files

47 lines
1.4 KiB
C#
Raw Permalink Normal View History

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace VRBeats
{
public class Spark : MonoBehaviour
{
[SerializeField] MaterialBindings materialBindings = null;
[SerializeField] private float glowEffect = 0.5f;
[SerializeField] private float scaleTime = 1.5f;
[SerializeField] private float moveTime = 1.5f;
[SerializeField] private float targetScale = 500.0f;
public void Construct(Color c)
{
2026-05-29 00:32:21 +09:00
float visibilityMultiplier = IsBlueDominant(c) ? 1.6f : 1.0f;
materialBindings.SetUseEmmisiveIntensity(false);
2026-05-29 00:32:21 +09:00
materialBindings.SetEmmisiveColor(c * glowEffect * visibilityMultiplier);
PlayAnimation();
}
private void OnDestroy()
{
gameObject.CancelAllTweens();
}
private void PlayAnimation()
{
transform.ScaleY(targetScale, scaleTime).SetEase(Ease.EaseOutExpo).SetOnComplete(delegate
{
transform.Move(transform.position + Vector3.up * targetScale, moveTime).SetOnComplete(delegate
{
Destroy(gameObject);
}).SetOwner(gameObject);
}).SetOwner(gameObject); ;
}
2026-05-29 00:32:21 +09:00
private static bool IsBlueDominant(Color color)
{
return color.b > color.r && color.b >= color.g;
}
}
}