2016-05-23 17 views
0

我在同一場景中有兩個圓圈,我需要其中一個圓圈重複與其他位置相同的運動。只保留與其他尺寸的距離。Unity3D - 以相同速度跟隨另一個對象(可變速度)

考慮到圓圈「A」和圓圈「B」,我將圓形座標「A」存儲在位置數組上,然後圓圈「B」讀取這些位置並執行。

使用這種方法時,我在增加速度圓圈「A」時遇到問題,因爲圓圈「B」仍然讀取先前存儲的速度,使圓圈分開。

查看該圖像:

enter image description here

理想的是,圓「B」上的圓圈「A」的當前的速度運行,但是它會永遠不可能從陣列中讀出已經以當時的圈子「A」的速度記錄下來。

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 
    }); 

什麼是製作這種場景的最佳方式?

我很感激任何幫助提前!

回答

0

我想你需要的是使用「A」的位置數組來創建一個對象「B」可以解釋的路徑,以基於固定距離而不是固定時間來計算其位置。

因此,在它的路徑中的「A」對象將創建一組路點的這樣的A1,A2,A3,A4 ....

B對象必須添加距離之間的持續航點,直到一個「等於或更大「的距離比固定距離A < - > B.

+0

嗨,感謝您的回覆。但是,當我們將對象存儲在數組中時,執行的計算將在此時被存儲......包括執行SPEED(在存儲時計算)'transform.position + = transform.right * Time.deltaTime *速度;'。請參閱最新的問題。 – IgoR