private void BoostFeedback(string boostedString) { GameObject boost = ObjectPooler.Instance.SpawnObject(_boostParticleTag, null, transform.position, transform.rotation); LeanTween.delayedCall(0.5f, () => { ObjectPooler.Instance.ReturnToPool(_boostParticleTag, boost); }); ParticleBase particles = boost.GetComponent <ParticleBase>(); switch (boostedString) { case "HP": particles.ChangeColor(_boostHPColor); break; case "Act": particles.ChangeColor(_boostActColor); break; case "Def": particles.ChangeColor(_boostDefColor); break; default: break; } particles.PlayComponents(); }
protected virtual void Init() { particleCounts = new[] { 0, 1, 0, 0 }; activeCountBuffer = new ComputeBuffer(4, Marshal.SizeOf(typeof(int)), ComputeBufferType.IndirectArguments); activeCountBuffer.SetData(particleCounts); particleComputer = GetComponent <ParticleBase>(); }
public ParticleBase[] Generate(SKPoint[] startPositions, int amount = 25, SKColor[] colors = null) { var particles = new ParticleBase[amount]; for (int i = 0; i < amount; i++) { particles[i] = _randomParticleGenerator.GetRandomParticle(startPositions, new[] { new DirectionRange(45, 135) }, amount, _rand, i, colors ?? RandomParticleGenerator.DefaultColors); } return(particles); }
public ParticleBase[] Generate(SKPoint[] startPositions, int amount = 25, SKColor[] colors = null) { var particles = new ParticleBase[amount]; var startPosition = startPositions[_rand.Next(startPositions.Length)]; for (int i = 0; i < amount; i++) { var newDouble = _rand.NextDouble(); particles[i] = (newDouble) switch { _ when newDouble > 0.66d => new MicrosoftLogoParticle( new SKPoint3( (float)(_rand.NextDouble() * 360.0f * 1.2), (float)(_rand.NextDouble() * 360.0f * 1.2), (float)(_rand.NextDouble() * 360.0f * 1.2) ), (float)(100.0f + _rand.NextDouble() * 200), (float)(45.0f + _rand.NextDouble() * 90.0f), new SKPoint3( (float)(_rand.NextDouble() * 360.0f), (float)(_rand.NextDouble() * 360.0f), (float)(_rand.NextDouble() * 360.0f) ), startPosition , new SKSize( (float)(4 + _rand.NextDouble() * 5), (float)(4 + _rand.NextDouble() * 5) ) ), _ when newDouble > 0.33d => new GitHubLogoParticle( new SKPoint3( (float)(_rand.NextDouble() * 360.0f * 1.2), (float)(_rand.NextDouble() * 360.0f * 1.2), (float)(_rand.NextDouble() * 360.0f * 1.2) ), (float)(100.0f + _rand.NextDouble() * 200), (float)(45.0f + _rand.NextDouble() * 90.0f), new SKPoint3( (float)(_rand.NextDouble() * 360.0f), (float)(_rand.NextDouble() * 360.0f), (float)(_rand.NextDouble() * 360.0f) ), startPosition , new SKSize( (float)(4 + _rand.NextDouble() * 5), (float)(4 + _rand.NextDouble() * 5) ) ), _ => new GoogleLogoParticle( new SKPoint3( (float)(_rand.NextDouble() * 360.0f * 1.2), (float)(_rand.NextDouble() * 360.0f * 1.2), (float)(_rand.NextDouble() * 360.0f * 1.2) ), (float)(100.0f + _rand.NextDouble() * 200), (float)(45.0f + _rand.NextDouble() * 90.0f), new SKPoint3( (float)(_rand.NextDouble() * 360.0f), (float)(_rand.NextDouble() * 360.0f), (float)(_rand.NextDouble() * 360.0f) ), startPosition , new SKSize( (float)(4 + _rand.NextDouble() * 5), (float)(4 + _rand.NextDouble() * 5) ) ) }; } ; return(particles); } }