Ich versuche einen Algorithmus zu schreiben, der ein beliebiges Quad in kleinere Quads aufteilt, die alle die gleichen x-, y- und z-Skalen haben (also Würfel). Im Moment habe ich Code, der Quads in verkleinerte Versionen von sich selbst teilt, aber ich möchte, dass das Verhältnis 1: 1: 1 ist. Wie würde ich den Code ändern, um dies zu tun?Wie würde ich einen beliebigen Würfel in kleinere Würfel unterteilen?
for (int x=0; x < 2; x++) {
for (int y=0; y < 2; y++) {
for (int z=0; z < 2; z++) {
GameObject newCube = Instantiate(gameObject);
newCube.transform.localScale = new Vector3(
newCube.transform.localScale.x/2,
newCube.transform.localScale.y/2,
newCube.transform.localScale.z/2
);
newCube.transform.position = new Vector3(
newCube.transform.position.x + ((x-0.5f) * newCube.transform.localScale.x),
newCube.transform.position.y + ((y-0.5f) * newCube.transform.localScale.y),
newCube.transform.position.z + ((z-0.5f) * newCube.transform.localScale.z)
);
}
}
Destroy(gameObject);
klarstellen .. beliebiges QUAD ist (sollte) ein planares Objekt mit 4 Ecken sein. Scaled Down QUAD ist nicht quadratisch oder würfelförmig. Wenn du stattdessen Würfel willst, dann sprichst du von Maschen und nicht von QUADs. Also was ist es (was genau zeigt das Eingabebeispiel)? Wie viele Quadrate/Würfel/QUADS wollen Sie in Unterteilung (basierend auf Fläche/Volumen/Größe, Konstante wie 4, andere)? Antwort ist wirklich unterschiedlich für jede Kombination von diesem. Hatte den Titel geändert, damit es besser zu deinem Code passt – Spektre