Merged in whatwapp/unity-ui-extensions (pull request #10)
Unity API auto-update in UIParticleSystem Merging as it seems a good way to stop the ever evolving errors. Will improve the script at a later date.pull/413/head
commit
d0836e3130
|
@ -74,7 +74,8 @@ namespace UnityEngine.UI.Extensions
|
||||||
}
|
}
|
||||||
|
|
||||||
// automatically set scaling
|
// automatically set scaling
|
||||||
_particleSystem.scalingMode = ParticleSystemScalingMode.Local;
|
var main = _particleSystem.main;
|
||||||
|
main.scalingMode = ParticleSystemScalingMode.Local;
|
||||||
|
|
||||||
_particles = null;
|
_particles = null;
|
||||||
setParticleSystemMaterial = true;
|
setParticleSystemMaterial = true;
|
||||||
|
@ -113,7 +114,7 @@ namespace UnityEngine.UI.Extensions
|
||||||
// prepare particles array
|
// prepare particles array
|
||||||
if (_particles == null)
|
if (_particles == null)
|
||||||
{
|
{
|
||||||
_particles = new ParticleSystem.Particle[_particleSystem.maxParticles];
|
_particles = new ParticleSystem.Particle[_particleSystem.main.maxParticles];
|
||||||
}
|
}
|
||||||
|
|
||||||
// prepare uvs
|
// prepare uvs
|
||||||
|
@ -177,14 +178,14 @@ namespace UnityEngine.UI.Extensions
|
||||||
ParticleSystem.Particle particle = _particles[i];
|
ParticleSystem.Particle particle = _particles[i];
|
||||||
|
|
||||||
// get particle properties
|
// get particle properties
|
||||||
Vector2 position = (_particleSystem.simulationSpace == ParticleSystemSimulationSpace.Local ? particle.position : _transform.InverseTransformPoint(particle.position));
|
Vector2 position = (_particleSystem.main.simulationSpace == ParticleSystemSimulationSpace.Local ? particle.position : _transform.InverseTransformPoint(particle.position));
|
||||||
float rotation = -particle.rotation * Mathf.Deg2Rad;
|
float rotation = -particle.rotation * Mathf.Deg2Rad;
|
||||||
float rotation90 = rotation + Mathf.PI / 2;
|
float rotation90 = rotation + Mathf.PI / 2;
|
||||||
Color32 color = particle.GetCurrentColor(_particleSystem);
|
Color32 color = particle.GetCurrentColor(_particleSystem);
|
||||||
float size = particle.GetCurrentSize(_particleSystem) * 0.5f;
|
float size = particle.GetCurrentSize(_particleSystem) * 0.5f;
|
||||||
|
|
||||||
// apply scale
|
// apply scale
|
||||||
if (_particleSystem.scalingMode == ParticleSystemScalingMode.Shape)
|
if (_particleSystem.main.scalingMode == ParticleSystemScalingMode.Shape)
|
||||||
{
|
{
|
||||||
position /= canvas.scaleFactor;
|
position /= canvas.scaleFactor;
|
||||||
}
|
}
|
||||||
|
@ -193,7 +194,11 @@ namespace UnityEngine.UI.Extensions
|
||||||
Vector4 particleUV = _uv;
|
Vector4 particleUV = _uv;
|
||||||
if (_textureSheetAnimation.enabled)
|
if (_textureSheetAnimation.enabled)
|
||||||
{
|
{
|
||||||
|
#if UNITY_5_5_OR_NEWER
|
||||||
|
float frameProgress = 1 - (particle.remainingLifetime / particle.startLifetime);
|
||||||
|
#else
|
||||||
float frameProgress = 1 - (particle.lifetime / particle.startLifetime);
|
float frameProgress = 1 - (particle.lifetime / particle.startLifetime);
|
||||||
|
#endif
|
||||||
// float frameProgress = textureSheetAnimation.frameOverTime.curveMin.Evaluate(1 - (particle.lifetime / particle.startLifetime)); // TODO - once Unity allows MinMaxCurve reading
|
// float frameProgress = textureSheetAnimation.frameOverTime.curveMin.Evaluate(1 - (particle.lifetime / particle.startLifetime)); // TODO - once Unity allows MinMaxCurve reading
|
||||||
frameProgress = Mathf.Repeat(frameProgress * _textureSheetAnimation.cycleCount, 1);
|
frameProgress = Mathf.Repeat(frameProgress * _textureSheetAnimation.cycleCount, 1);
|
||||||
int frame = 0;
|
int frame = 0;
|
||||||
|
|
Loading…
Reference in New Issue