2016-05-23 9 views
0

Ich habe zwei Kreise in der gleichen Szene, und ich brauche eine von ihnen wiederholen Sie die gleiche Bewegung, die andere Stelle. Nur die Entfernung von der Größe der anderen halten.Unity3D - Ein Objekt dem anderen mit der gleichen Geschwindigkeit folgen (variable Geschwindigkeit)

Betrachtet man den Kreis "A" und den Kreis "B", speichere ich die Kreiskoordinate "A" auf einem Array von Positionen, dann liest der Kreis "B" diese Positionen und führt diese aus.

Mit dieser Methodik habe ich Probleme beim Erhöhen des Geschwindigkeitskreises "A", weil wie der Kreis "B" immer noch die Geschwindigkeit liest, die vorher gespeichert wurde, um Kreise zu trennen.

Siehe das Bild:

enter image description here

der Kreis „B“ laufen auf der aktuellen Geschwindigkeit des Kreises „A“ Idealerweise, aber es wird nie möglich sein, von einem Array lesen zu bereits mit der Geschwindigkeit des Kreises "A" zu dieser Zeit aufgezeichnet.

var dir = Input.mousePosition - Camera.main.WorldToScreenPoint(transform.position); 
    var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg; 

    transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.AngleAxis(angle, Vector3.forward), 180 * Time.deltaTime); 
    transform.position += transform.right * Time.deltaTime * velocity; 

    Camera.main.transform.position = new Vector3(transform.position.x, transform.position.y, Camera.main.transform.position.z); 

    recordList.Insert(0, new Recorder 
    { 
     Position = transform.position, 
     Rotation = transform.rotation, 
     Velocity = velocity 
    }); 

Was wäre der beste Weg, um dieses Szenario zu machen?

Ich freue mich über jede Hilfe im Voraus!

Antwort

0

Ich denke, was Sie brauchen, ist das Array der Positionen von "A" zu verwenden, um eine Route zu erstellen, die das Objekt "B" interpretieren kann, um seine Position basierend auf einer festen Entfernung zu berechnen, nicht in einer festen Zeit.

So ist das "A" Objekt in seinem Weg würde eine Reihe von Wegpunkten solche A1 schaffen, A2, A3, A4 ....

Das B-Objekt muss Entfernungen zwischen den Wegpunkten hinzuzufügen dauert, bis ein „equal oder größer "Abstand als der feste Abstand A < -> B.

+0

Hallo, vielen Dank für Ihre Antwort. Aber wenn wir das Objekt im Array speichern, wird die durchgeführte Berechnung zu diesem Zeitpunkt gespeichert ... einschließlich der Ausführung SPEED (die zum Zeitpunkt der Speicherung berechnet wird) 'transform.position + = transform.right * Time.deltaTime * Geschwindigkeit; '. Bitte sehen Sie sich die aktualisierte Frage an. – IgoR