Esempio n. 1
0
    // Handle collision
    public void OnCollisionEnter2D(Collision2D collision)
    {
        // get normal
        Vector2 normal       = collision.contacts[0].normal;
        Vector2 contactPoint = collision.contacts[0].point;

        // assign collision object
        Paddle         paddle         = collision.gameObject.GetComponent <Paddle>();
        Brick          brick          = collision.gameObject.GetComponent <Brick>();
        ScreenCollider screenCollider = collision.gameObject.GetComponent <ScreenCollider>();

        // handle collision with object
        if (paddle != null)
        {
            CollideWithPaddle(paddle, normal, contactPoint);
            // top face of paddle collision does not use standard bounce
            if (normal != Vector2.up)
            {
                Bounce(normal);
            }
        }
        else if (brick != null)
        {
            CollideWithBrick(brick, normal);
            Bounce(normal);
        }
        else if (screenCollider != null)
        {
            CollideWithScreenCollider(screenCollider, normal);
            Bounce(normal);
        }
    }
Esempio n. 2
0
 // Handle screen collider collsion
 private void CollideWithScreenCollider(ScreenCollider screenCollider, Vector2 normal)
 {
     if (normal == Vector2.up)
     {
         ToOnPaddleState();
         ball.gameManager.scoreTracker.ResetAllMultipliers();
     }
 }
Esempio n. 3
0
    void Awake()
    {
        cam = GetComponent <Camera>();
        if (!cam)
        {
            cam = Camera.main;
        }
        if (!cam)
        {
            Debug.LogError("No camera available");
            return;
        }
        wantedAspectRatio = _wantedAspectRatio;

        screenCollider = FindObjectOfType <ScreenCollider>().GetComponent <ScreenCollider>();

        currentScreenWidth  = Screen.width;
        currentScreenHeight = Screen.height;
        aspectRatio         = Screen.width / Screen.height;

        SetCamera();
    }