Example #1
0
    void CreateScoringBalls(Transform root, Transform lastScoringParent)
    {
        foreach (Transform child in root)
        {
            if (child.GetComponent <AttachedBall>())
            {
                GameObject ball;
                if (ComboValid(root, child))
                {
                    ball = PoolManager.Instance.GetPoolByRepresentative(scoringBallChildPrefab).GetPooled();
                    ball.transform.parent = lastScoringParent;
                }
                else
                {
                    ball = PoolManager.Instance.GetPoolByRepresentative(scoringBallPrefab).GetPooled();
                    ScoringBall sb = ball.GetComponent <ScoringBall>();
                    sb.lifeTime  = Random.Range(0.5f, 1f);
                    sb.speed     = Random.Range(10f, 20f);
                    sb.rotSpeed  = Random.Range(180f, 360f);
                    sb.travelDir = Quaternion.AngleAxis(Random.Range(-45f, 45f), Vector3.forward)
                                   * (ball.transform.position - root.transform.position).normalized;
                }
                ball.transform.position = child.position;
                ball.transform.rotation = child.rotation;
                ball.GetComponent <SpriteRenderer>().sprite = child.GetComponent <SpriteRenderer>().sprite;


                ball.SetActive(true);
                ball.SendMessage("Arm", SendMessageOptions.DontRequireReceiver);
                CreateScoringBalls(child, ball.transform);
            }
        }
    }
Example #2
0
    public override void Destroy()
    {
        PoolableTrackingParticleBurst particles = PoolManager.Instance.
                                                  GetPoolByRepresentative(particleBurstPrefab).GetPooled().GetComponent <PoolableTrackingParticleBurst>();

        particles.transform.position = transform.position;
        particles.gameObject.SetActive(true);
        particles.GetComponent <ParticleSystem>().startColor = ScoringBall.GetParticleColor(GetComponent <SpriteRenderer>().sprite);
        particles.SetTarget(GameObject.Find("PlayerBall").transform);
        particles.Play();
        base.Destroy();
    }