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); } } }