Ejemplo n.º 1
0
    private void HandleMouseClick()
    {
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        bool       didRayCastHit = Physics.Raycast(ray, out hit);

        // https://answers.unity.com/questions/50279/check-if-layer-is-in-layermask.html
        // looking for block collisions only
        bool isHitTargetInCollidableLayer =
            didRayCastHit ? CollidableLayer == (CollidableLayer | (1 << hit.transform.gameObject.layer)) : false;

        if (didRayCastHit && isHitTargetInCollidableLayer)
        {
            BlockFaceBehaviour blockFace = hit.transform.gameObject.GetComponent <BlockFaceBehaviour>();
            BlockFace          face      = BlockFaceMethods.BlockFaceFromNormal(hit.normal);
            if (_faceMap.ContainsKey(blockFace) && face == _faceMap[blockFace])
            {
                _animator.MoveBlock(blockFace, face);
            }
        }
    }