mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-16 16:34:41 +01:00
47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
namespace MoleMole
|
|
{
|
|
public class MonoEffectPluginSpeedSensitive : MonoBehaviour
|
|
{
|
|
[Header("Target Particle Systems")]
|
|
public ParticleSystem[] targetParticleSystems;
|
|
|
|
[Header("Max Speed")]
|
|
public float maxSpeed = 1f;
|
|
|
|
[SerializeField]
|
|
private float[] _origRateMaxes;
|
|
|
|
[SerializeField]
|
|
private Vector3 _lastPos;
|
|
|
|
private void Awake()
|
|
{
|
|
_origRateMaxes = new float[targetParticleSystems.Length];
|
|
_lastPos = base.transform.position;
|
|
for (int i = 0; i < targetParticleSystems.Length; i++)
|
|
{
|
|
ParticleSystem.EmissionModule emission = targetParticleSystems[i].emission;
|
|
ParticleSystem.MinMaxCurve rate = emission.rate;
|
|
_origRateMaxes[i] = rate.constantMax;
|
|
rate.curveMultiplier = 0f;
|
|
emission.rate = rate;
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
float num = Mathf.Min(1f, Vector3.Distance(base.transform.position, _lastPos) / (Time.deltaTime * maxSpeed));
|
|
for (int i = 0; i < targetParticleSystems.Length; i++)
|
|
{
|
|
ParticleSystem.EmissionModule emission = targetParticleSystems[i].emission;
|
|
ParticleSystem.MinMaxCurve rate = emission.rate;
|
|
rate.constantMax = _origRateMaxes[i] * num;
|
|
emission.rate = rate;
|
|
}
|
|
_lastPos = base.transform.position;
|
|
}
|
|
}
|
|
}
|