Ich habe Cube zu Szene hinzugefügt und ich skaliert und auf Position (0, 0, 0). Ich Skalierung, dass Cube mit Code angebrachtScale Spielobjekt auf nur einer Seite
IEnumerator Start() {
StartCoroutine("DoSomething", 2.0F);
yield return new WaitForSeconds(1);
StopCoroutine("DoSomething");
}
IEnumerator DoSomething(float someParameter) {
while (true) {
transform.localScale += new Vector3(0, 0.1f, 0);
yield return null;
}
}
aber Cube skaliert auf beiden Seiten auf Cube, nach oben und unten. Ich möchte mit demselben Faktor skalieren, aber der Boden von Cube bleibt auf derselben Position. Ich habe versucht, eine neue Position zwischen transform.localScale += new Vector3(0, 0.1f, 0);
und yield return null;
zu setzen, aber ich weiß nicht, wie man die genaue Menge erhält. (habe ich versucht,
Mesh planeMesh = gameObject.GetComponent<MeshFilter>().mesh;
Bounds bounds = planeMesh.bounds;
bounds.size.y;
vor und nach der Skala zu lesen und zu
transform.position.y
Unterschied zwischen boundsAfter.size.y
und boundsBefore.size.y
hinzufügen, aber es bewegt sich zu viel.
Wie dieses Problem zu lösen?
Sie Problem ist, dass Sie nur den Würfel auf der einen Seite skalieren möchten? nur in Hochrichtung nicht hoch und runter beim Skalieren? – Programmer
@Programmer Ja, zum Beispiel, wenn Cube bottom bei 0 ist und y Koordinaten nach der Skala Ich möchte auf 0 auf y Koordinaten bleiben.Im Moment skaliert es, aber der untere Teil des Würfels wird kleiner als 0 auf y Koordinaten. –