2016-08-29 1 views
0

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?

+0

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

+0

@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. –

Antwort

3

Sie können dies tatsächlich in zwei wa tun ys.

METHODE 1:

ändern Anlenkpunkt von einer externen Anwendung.

Erstellen Sie einen einfachen Cube in einer 3D-Software wie Maya, positionieren Sie den Drehpunkt an der Unterseite des Cubes und exportieren Sie ihn anschließend Unity. Dies sollte aus der Box funktionieren.

METHODE 2:

Eltern der Cube auf eine leere Gameobject.

Schritte:

A .Create a ein Leer Gameobject.

B .Bewegen Sie das neue GameObject an die Position des Cubes und verschieben Sie dann die y-Achse des neuen GameObject an den unteren Rand des Cubes. Die Y-Pos muss durch Zoomen genau positioniert werden. Weitere Informationen finden Sie in der Animation unten.

C .Now ziehen Sie die Cube auf die diese neue Gameobject und der Würfel sollte das Kind diese neuen Gameobject sein. Sie können nun das Skript in Ihrer Frage an dieses neue GameObject anhängen und es sollte den Würfel nur auf einer Seite skalieren. Vergessen Sie nicht, das alte Skalierungsskript zu entfernen, das direkt mit dem Cube verbunden ist.

Bildanleitung. Hochwertige Version here.

enter image description here

Verwandte Themen