void positionNode() { int xOffset = 0; int zOffset = 0; switch(RPTP) { case RelativePosToParent.LEFT: xOffset = -300; break; case RelativePosToParent.LEFT_TOP: xOffset = -300; // zOffset = 300; break; case RelativePosToParent.LEFT_BOT: xOffset = -300; // zOffset = -300; break; case RelativePosToParent.RIGHT: xOffset = 300; break; case RelativePosToParent.RIGHT_TOP: xOffset = 300; // zOffset = 300; break; case RelativePosToParent.RIGHT_BOT: xOffset = 300; // zOffset = -300; break; case RelativePosToParent.TOP: zOffset = 300; break; case RelativePosToParent.BOTTOM: zOffset = -300; break; }; Vector3 newPos = new Vector3(parent.leafData.roomHolder.transform.position.x +xOffset, 0, parent.leafData.roomHolder.transform.position.z + zOffset); leafData.roomHolder.transform.position = newPos; takenPositions.Add(newPos); if(parent.left != this) { if(parent.left.leafData.roomHolder.transform.position == this.leafData.roomHolder.transform.position) { RPTP = (RelativePosToParent)Mathf.CeilToInt(Random.value* (int)RelativePosToParent.RIGHT_BOT); positionNode(); } } else { } }
public LeafData() { RPTP = (RelativePosToParent)Mathf.CeilToInt(Random.value* (int)RelativePosToParent.BOTTOM); }