我怎麼能把2-3用戶點之間的開始和每秒移動用戶 點更接近3星?
使用Vector2.Lerp
來做到這一點。通過第一個位置和第二個位置,然後通過0.5(一半)到時間參數它應該返回中點之間的第一和第二個位置。
一個輔助函數來做到這一點:
Vector2 getMidPoint(Vector2 userPointA, Vector2 userPointB)
{
return Vector2.Lerp(userPointA, userPointB, 0.5f);
}
我可以知道他的旅行從2到3星的,我知道該用戶將 有(星#3)在4分鐘
IEnumerator moveWithinTime(GameObject playerToMove, Vector2 fromPointA, Vector2 toPointB, float byTime)
{
float counter = 0;
while (counter < byTime)
{
counter += Time.deltaTime;
playerToMove.transform.position = Vector2.Lerp(fromPointA, toPointB, counter/byTime);
yield return null;
}
}
,並呼籲它,StartCoroutine(moveWithinTime(gameObject, gameObject.transform.position, new Vector2(10f, 10f), 4));
感謝。現在的問題是......當我從服務器starrs返回 - 我需要給他們只是params的pistions和顯示在地圖場景 我的意思是我會現在返回事端like: {starName =「Name」,vector = here是在地圖上的位置參數,以及img網址 - 用於自定義視圖的星形} ?? – David
@大衛我更新了我的答案。你的問題和你的評論很難理解,但我想我知道你正在努力做的一點**。我添加的新功能可以用來在一段時間內(4分鐘)將玩家從一個位置移動到另一個位置。 – Programmer
謝謝。是的 - 我的語法爲:( )在我的最後一個評論中,我試着問 - 我如何知道A和B矢量 - 如果我理解正確 - 我可以從服務器返回它。我可以動態地在地圖上開始 – David