Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
	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);
		}
	}
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
		/// <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);
	
		}
Exemplo n.º 5
0
        /// <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;
			}

		}