Beispiel #1
0
    void GenerateParticle( )
    {
        Vector2 position = Random.insideUnitCircle * _radius + ( Vector2 )_transform.position;

        // Rigidbody2D rigidbody2D = Instantiate(_particlePrefab, position, _transform.rotation, _container).GetComponent<Rigidbody2D>( );

        GameObject newParticle = ParticlesPooling.Instance.GetParticle( );

        if (newParticle != null)
        {
            newParticle.transform.position = position;
            newParticle.transform.rotation = _transform.rotation;
            newParticle.GetComponent <TrailRenderer>( ).Clear();

            newParticle.SetActive(true);

            Rigidbody2D rigidbody2D = newParticle.GetComponent <Rigidbody2D>( );
            rigidbody2D.velocity = _transform.right * _speed;
            rigidbody2D.drag     = _drag;

            ColorManager colorManager = rigidbody2D.GetComponent <ColorManager>( );
            colorManager.ChangeParticleColor(_spawnColor);


            // Transform particle = Instantiate(_particlePrefab, _container);
            // particle.position = Random.insideUnitCircle * _radius + ( Vector2 ) _transform.position;
            // particle.rotation = _transform.rotation;
        }
    }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        ColorManager colorManager = collision.GetComponent <ColorManager>( );

        colorManager.ChangeParticleColor(_newColor);
    }