private void CacheState() { _cachedState = new ParticleBuilder() { velocity = Vector2.zero, wrapAroundType = wrapAround, lengthMultiplier = this.lengthMultiplier, velocityDampModifier = velocityDampener, removeWhenAlphaReachesThreshold = true }; if (clampMinLength) { _cachedState.minLengthClamp = minLength; } if (clampMaxLength) { _cachedState.maxLengthClamp = maxLength; } if (removeWhenVelocityReachesThreshold) { _cachedState.customVelocityThreshold = customVelocityThreshold; } if (removeWhenAlphaReachesThreshold) { _cachedState.customAlphaThreshold = customAlphaThreshold; } }
private void SpawnExplosion (Vector2 position) { float hue1 = Random.Range (0, 6); float hue2 = (hue1 + Random.Range (0, 2)) % 6f; Color colour1 = StaticExtensions.Color.FromHSV (hue1, 0.5f, 1); Color colour2 = StaticExtensions.Color.FromHSV (hue2, 0.5f, 1); for (int i = 0; i < numToSpawn; i++) { float speed = (18f * (1f - 1 / Random.Range (1f, 10f))) * speedOffset; var state = new ParticleBuilder () { velocity = StaticExtensions.Random.RandomVector2(speed, speed), wrapAroundType = wrapAround, lengthMultiplier = lengthMultiplier, velocityDampModifier = 0.94f, removeWhenAlphaReachesThreshold = true }; var colour = Color.Lerp (colour1, colour2, Random.Range (0, 1)); float duration = 320f; var initialScale = new Vector2 (2f, 1f); ParticleFactory.instance.CreateParticle (position, colour, duration, initialScale, state); } }
private void SpawnExplosion(Vector2 position) { float hue1 = Random.Range(0, 6); float hue2 = (hue1 + Random.Range(0, 2)) % 6f; Color colour1 = StaticExtensions.Color.FromHSV(hue1, 0.5f, 1); Color colour2 = StaticExtensions.Color.FromHSV(hue2, 0.5f, 1); for (int i = 0; i < numToSpawn; i++) { float speed = (18f * (1f - 1 / Random.Range(1f, 10f))) * speedOffset; var state = new ParticleBuilder() { velocity = StaticExtensions.Random.RandomVector2(speed, speed), wrapAroundType = wrapAround, lengthMultiplier = lengthMultiplier, velocityDampModifier = 0.94f, removeWhenAlphaReachesThreshold = true, maxLengthClamp = 1.5f }; var colour = Color.Lerp(colour1, colour2, Random.Range(0, 1)); float duration = 320f; var initialScale = new Vector2(2f, 1f); ParticleFactory.instance.CreateParticle(position, colour, duration, initialScale, state); } }
/// <summary> /// Creates a particle at position with the specified state. /// </summary> /// <param name="position">Initial position of particle.</param> /// <param name="tint">The initial colour of particle.</param> /// <param name="duration">The maximum duration of particle.</param> /// <param name="scale">Initial scale of particle.</param> /// <param name="state">THe particle state.</param> public void CreateParticle (Vector2 position, Color colour, float duration, Vector2 initialScale, ParticleBuilder state) { CustomParticle particle; if (_particleArray.reachedCapacity) { particle = _particleArray [0]; _particleArray.Start++; particle.gameObject.SetActive (false); } else { particle = _particleArray [_particleArray.Count]; _particleArray.Count++; } particle.state = state; particle.percentLife = 1f; particle.duration = duration; particle.transform.position = position; particle.transform.localScale = initialScale; particle.spriteRenderer.color = colour; particle.gameObject.SetActive (true); }
/// <summary> /// Creates a particle at position with the specified state. /// </summary> /// <param name="position">Initial position of particle.</param> /// <param name="tint">The initial colour of particle.</param> /// <param name="duration">The maximum duration of particle.</param> /// <param name="scale">Initial scale of particle.</param> /// <param name="state">THe particle state.</param> public void CreateParticle(Vector2 position, Color colour, float duration, Vector2 initialScale, ParticleBuilder state) { CustomParticle particle; if (_particleArray.reachedCapacity) { particle = _particleArray [0]; _particleArray.Start++; particle.gameObject.SetActive(false); } else { particle = _particleArray [_particleArray.Count]; _particleArray.Count++; } particle.state = state; particle.percentLife = 1f; particle.duration = duration; //particle.transform.position = position; particle.transform.position = new Vector3(0, -1f, -3.2f); particle.transform.localScale = initialScale; particle.spriteRenderer.color = colour; particle.gameObject.SetActive(true); }
private void CacheState () { _cachedState = new ParticleBuilder () { velocity = Vector2.zero, wrapAroundType = wrapAround, lengthMultiplier = this.lengthMultiplier, velocityDampModifier = velocityDampener, removeWhenAlphaReachesThreshold = true }; if (clampMinLength) { _cachedState.minLengthClamp = minLength; } if (clampMaxLength) { _cachedState.maxLengthClamp = maxLength; } if (removeWhenVelocityReachesThreshold) { _cachedState.customVelocityThreshold = customVelocityThreshold; } if (removeWhenAlphaReachesThreshold) { _cachedState.customAlphaThreshold = customAlphaThreshold; } }