Пример #1
0
    private void FixedUpdate()
    {
        isGrounded = false;
        Collider2D collider = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, ground | cubeLayer);

        if (collider)
        {
            if (Time.time > nextGroundCheckTime)
            {
                if (!collider.isTrigger)
                {
                    isGrounded        = true;
                    canJumpAgain      = false;
                    ableToBeJumpAgain = true;
                }
            }
            if (collider.GetComponent <WhiteSideCube>())
            {
                if (collider.GetComponent <WhiteSideCube>().IsWhite())
                {
                    whiteSideCube = collider.GetComponent <WhiteSideCube>();
                }
            }
        }
        else
        {
            whiteSideCube = null;
        }
    }
Пример #2
0
 private void Awake()
 {
     leftOrDownSideCubes = new List <ColoredCube>();
     rightOrUpbSideCubes = new List <ColoredCube>();
     cubeLayer           = LayerMask.NameToLayer("Cube");
     RaycastHit2D[] rayHit;
     RaycastHit2D[] rayHit2;
     if (isHorizontal)
     {
         rayHit  = Physics2D.RaycastAll(transform.position, new Vector2(-1, 0), 20f, 1 << cubeLayer);
         rayHit2 = Physics2D.RaycastAll(transform.position, new Vector2(1, 0), 20f, 1 << cubeLayer);
     }
     else
     {
         rayHit  = Physics2D.RaycastAll(transform.position, new Vector2(0, -1), 20f, 1 << cubeLayer);
         rayHit2 = Physics2D.RaycastAll(transform.position, new Vector2(0, 1), 20f, 1 << cubeLayer);
     }
     for (int i = 0; i < rayHit.Length; i++)
     {
         WhiteSideCube wsc = rayHit[i].collider.gameObject.GetComponent <WhiteSideCube>();
         BlackSideCube bsc = rayHit[i].collider.gameObject.GetComponent <BlackSideCube>();
         if (wsc)
         {
             leftOrDownSideCubes.Add(wsc);
             if (wsc.mirrors[0])
             {
                 wsc.mirrors[1] = this;
             }
             else
             {
                 wsc.mirrors[0] = this;
             }
         }
         else
         {
             leftOrDownSideCubes.Add(bsc);
             if (bsc.mirrors[0])
             {
                 bsc.mirrors[1] = this;
             }
             else
             {
                 bsc.mirrors[0] = this;
             }
         }
     }
     for (int i = 0; i < rayHit2.Length; i++)
     {
         WhiteSideCube wsc = rayHit2[i].collider.gameObject.GetComponent <WhiteSideCube>();
         BlackSideCube bsc = rayHit2[i].collider.gameObject.GetComponent <BlackSideCube>();
         if (wsc)
         {
             rightOrUpbSideCubes.Add(wsc);
             if (wsc.mirrors[0])
             {
                 wsc.mirrors[1] = this;
             }
             else
             {
                 wsc.mirrors[0] = this;
             }
         }
         else
         {
             rightOrUpbSideCubes.Add(bsc);
             if (bsc.mirrors[0])
             {
                 bsc.mirrors[1] = this;
             }
             else
             {
                 bsc.mirrors[0] = this;
             }
         }
     }
 }