我想擁有一個GameObject,它跟隨我的玩家並始終停留在他的左邊。 我不想讓它成爲一個孩子,因爲我看起來不自然,我也玩過NavmeshAgent,但第二個對象太慢/移動太多。讓一個GameObject成爲一名隊員
感謝您的任何建議!
我想擁有一個GameObject,它跟隨我的玩家並始終停留在他的左邊。 我不想讓它成爲一個孩子,因爲我看起來不自然,我也玩過NavmeshAgent,但第二個對象太慢/移動太多。讓一個GameObject成爲一名隊員
感謝您的任何建議!
一種解決方案是這樣的:
添加一個空的遊戲物體(我稱之爲SquadPoint
)作爲主要選手對象的孩子,並將其放置在所需位置(左手)。
地方實際的小隊成員直接在現場(我假設小隊成員具有連接到它,我把它叫做SquadMemberController
控制器腳本)
下面的代碼添加到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
}
}
我調整了旋轉一點,使其適合我的,但它是一個很好的解決方案。非常感謝你! – kapuetze
'NavmeshAgent'是一個很好的解決方案。你試過調整'speed','angularSpeed','acceleration'? –
是的,我玩過它,它通常太慢或物體加速如此之快,以致它爆發並像鐘擺一樣。也許我不明白這三個值如何在一起。 – kapuetze