2016-08-15 65 views
0

我想擁有一個GameObject,它跟隨我的玩家並始終停留在他的左邊。 我不想讓它成爲一個孩子,因爲我看起來不自然,我也玩過NavmeshAgent,但第二個對象太慢/移動太多。讓一個GameObject成爲一名隊員

感謝您的任何建議!

+0

'NavmeshAgent'是一個很好的解決方案。你試過調整'speed','angularSpeed','acceleration'? –

+0

是的,我玩過它,它通常太慢或物體加速如此之快,以致它爆發並像鐘擺一樣。也許我不明白這三個值如何在一起。 – kapuetze

回答

0

一種解決方案是這樣的:

  1. 添加一個空的遊戲物體(我稱之爲SquadPoint)作爲主要選手對象的孩子,並將其放置在所需位置(左手)。

  2. 地方實際的小隊成員直接在現場(我假設小隊成員具有連接到它,我把它叫做SquadMemberController控制器腳本)

  3. 下面的代碼添加到SquadMemberController腳本

這應該使小隊成員跟隨SquadPoint,並且由於SquadPoint是主要球員的小孩,它會隨主球員移動和旋轉。

const float threshold = 1f; 

public float speed;   //set in inspector 
public Transform SquadPoint; //set in inspector 

void FixedUpdate(){ 

    //move towards SquadPoint with given speed 
    var distance = SquadPoint.position - transform.position; 
    if(distance.magnitude > threshold) 
    { 
     var direction = distance.normalized; 
     transform.position += direction * speed * time.fixedDeltaTime; 

     //rotate immediately 
     transform.LookAt(SquadPoint.position); 
    } 
    else 
    { 
     //... very close to main player 
    } 
} 
+0

我調整了旋轉一點,使其適合我的,但它是一個很好的解決方案。非常感謝你! – kapuetze

相關問題