2017-06-13 47 views
0

我是Unity的初學者,我想單獨創建一個個人項目。 我在場景上有兩個GameObject,我在Unity上使用LineRenderer和NavMesh代理來繪製兩個gameobjects之間的路徑,到目前爲止,一切都很好,Unity在兩個Gameobjects之間繪製路徑。沿着或穿過路徑放置並複製Gameobject Unity

Void Update(){ 
    OnDrawGiz(GameObject.Find("Destination")); 
    } 
    void OnDrawGiz(GameObject obj) 
    { 

    Transform target = obj.GetComponent<Transform>(); 
    NavMeshAgent nav; 
    LineRenderer line; 
    nav= this.GetComponent<NavMeshAgent>(); 
    if(nav == null || nav.path == null) 
     return; 
    line = this.GetComponent<LineRenderer>(); 
    line.material = new Material(Shader.Find("Sprites/Default")) { color 
     = Color.yellow }; 

    line.startColor=Color.yellow; 
    line.endColor = Color.green; 

    nav.SetDestination (target.position); 
    nav.isStopped=true; 
    var path = nav.path; 
    if (path.corners.Length < 2) 
     return ; 

    line.positionCount=path.corners.Length ; 

    //Draw the line 
    for(int i = 0; i < path.corners.Length; i++) 
    { 
     line.SetPosition(i, path.corners[i]); 
    } 
} 

darw path 現在我的問題是,我該怎麼和複製遊戲物體,例如立方體沿道路或橫跨這條道路嗎? Here photo the result which i want to have

我使用C#腳本,統一5.6

回答

1

在過去for循環,正確的前或後line.SetPosition(i, path.corners[i]);,您可以使用path.corners [I]相處線的頂點。只需使用Instantiate來實例化一個遊戲對象。例如:

Instantiate(prefab, path.corners[i], Quaternion.identity);

檢查這裏的文檔(第一個例子類似,你想要什麼):https://docs.unity3d.com/ScriptReference/Object.Instantiate.html

+0

感謝何塞普·瓦爾斯,它工作得很好:) – mkab

+0

我找到了另一種解決辦法太HTTP:/ /answers.unity3d.com/questions/1365065/put-instantiate-gameobject-along-or-accross-a-path.html?sort=votes – mkab