コード例 #1
0
    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);
    }