private IEnumerator PlaceBlock() { ArmAnim.SetBool("Clicked", true); RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // hacia donde mira el jugador xd Vector3 SpawnPos = Vector3.zero; Physics.Raycast(ray, out hit, 6f); if (hit.transform != null) { float xDiff = hit.point.x - hit.transform.position.x; float yDiff = hit.point.y - hit.transform.position.y; float zDiff = hit.point.z - hit.transform.position.z; Debug.Log(xDiff + " " + yDiff + " " + zDiff); if (Mathf.Abs(yDiff) == 1f) { SpawnPos = hit.transform.position + (Vector3.up * yDiff); // lo spawnea arriba } else if (Mathf.Abs(xDiff) == 1f) { SpawnPos = hit.transform.position + (Vector3.right * xDiff); // lo spawnea en eje x } else if (Mathf.Abs(zDiff) == 1f) { SpawnPos = hit.transform.position + (Vector3.forward * zDiff); // lo spawnea en eje z } GameObject newBlock = world.SpawnBlock(inv.selectedBlock, SpawnPos, hit.transform.parent); } yield return(new WaitForSeconds(0.33f)); ArmAnim.SetBool("Clicked", false); }