internal void placeCube() { float offset; moveSpeed = 0f; if (gameObject.name == "start") { GameObject.Find("Canvas").SetActive(false); return; } // daca nu se ating deloc if (moveDir == spawner.MoveDir.Z) { offset = transform.position.z - lastCube.transform.position.z; if (Mathf.Abs(offset) >= lastCube.transform.localScale.z) { gameObject.AddComponent <Rigidbody>(); return; } } else { offset = transform.position.x - lastCube.transform.position.x; if (Mathf.Abs(offset) >= lastCube.transform.localScale.x) { gameObject.AddComponent <Rigidbody>(); return; } } // x sau z float direction = (offset > 0f) ? 1f : -1f; // daca sunt foarte aproape sa le puna ok ( marja de eroare) if (Mathf.Abs(offset) < 0.08f) { transform.position = new Vector3(lastCube.transform.position.x, transform.position.y, lastCube.transform.position.z); } else // daca nu, le taie { if (moveDir == spawner.MoveDir.Z) { splitCubeOnZ(offset, direction); } else { splitCubeOnX(offset, direction); } } lastCube = this; }
private void OnEnable() { // cubu de inceput devine last cube if (lastCube == null) { lastCube = GameObject.Find("start").GetComponent <movingCube>(); } currentCube = this; transform.localScale = new Vector3(lastCube.transform.localScale.x, transform.localScale.y, lastCube.transform.localScale.z); }
public void spawnCube() { movingCube block = Instantiate(blockPrefab); block.moveDir = dir; float x_offset = dir == spawner.MoveDir.X ? transform.position.x : movingCube.lastCube.transform.position.x; float z_offset = dir == spawner.MoveDir.Z ? transform.position.z : movingCube.lastCube.transform.position.z; if (movingCube.lastCube.name == "start") { block.transform.position = transform.position; } else { block.transform.position = new Vector3(x_offset, movingCube.lastCube.transform.position.y + blockPrefab.transform.localScale.y, z_offset); } }