Beispiel #1
0
 void Paint(TorusPart part, Color color, bool isTruePart)
 {
     part.Paint(color, isTruePart);
     if (isTruePart)
     {
         ResetBall();
     }
     else
     {
         rb.velocity = Shooting.Instance.Bounce();
     }
 }
Beispiel #2
0
    void CalculateCollision()
    {
        float distance;

        if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
        {
            if (hit.transform.CompareTag("Target"))
            {
                TorusPart hittedTorus = hit.transform.GetComponent <TorusPart>();
                distance = Vector3.Distance(transform.position, hit.point);
                if (distance < 0.1f)
                {
                    if (!hittedTorus.painted)
                    {
                        Paint(hittedTorus, currentColor, true);
                        Shooting.Instance.SpawnFx(hit.point);
                    }
                    else
                    {
                        GetComponent <SphereCollider>().isTrigger = false;
                        Paint(hittedTorus, Color.black, false);
                        hittedTorus.StopTorus();
                        StartCoroutine(UIManager.Instance.LostLevel());
                    }
                }
            }
            else if (hit.transform.CompareTag("Wall"))
            {
                distance = Vector3.Distance(transform.position, hit.point);
                if (distance < 0.1f)
                {
                    ResetBall();
                }
            }
        }
    }