2016-02-18 30 views
1

我正在與Unity進行一場比賽,球員拿起一個曲奇,然後球員在y軸上跳躍。當玩家跳躍時,他正在抽搐(非常)。我想要那跳,我希望看到那個球員順利跳躍。 這是我的代碼流暢的球員跳

void OnTriggerEnter2D(Collider2D other) 
{ 
    if(other.gameObject.CompareTag("Player")) 
    { 
    player.velocity = new Vector2 (0, 0); 
    player.AddForce(new Vector2(0,jumpHeight)); 
} 

我測試了大約jumpHeight的1000F值的樣本。同樣的問題是更高或更低的價值。

UPDATE:這是我的移動攝像機的代碼示例:

void Update() 
    { 
     playerHeightY = player.position.y; 
     float currentCameraHeight = transform.position.y; 
     float newHeightOfCamera = Mathf.Lerp (currentCameraHeight, playerHeightY, Time.deltaTime * 10f); 

     if (playerHeightY > currentCameraHeight) 
     { 
      transform.position = new Vector3 (transform.position.x, newHeightOfCamera, transform.position.z); 
     } 
} 

感謝和親切的問候

+0

您是否嘗試過忽略重置播放器速度? – Dawnkeeper

+0

@Dawnkeeper我解決了我的問題。檢查我的更新後的解決方案:)謝謝 – mavericks

+0

@mavericks不會在您的問題中發佈解決方案,要麼刪除您的問題,要麼發佈答案並在最短時間限制過後接受答案。 –

回答

1

我只是提出newHeightOfCamera值從10F到100F而現在,玩家動起來非常非常流暢。我希望這篇文章能夠對某人有所幫助。謝謝:)

void Update() 
    { 
     playerHeightY = player.position.y; 
     float currentCameraHeight = transform.position.y; 
     float newHeightOfCamera = Mathf.Lerp (currentCameraHeight, playerHeightY, Time.deltaTime * 100f); 

     if (playerHeightY > currentCameraHeight) 
     { 
      transform.position = new Vector3 (transform.position.x, newHeightOfCamera, transform.position.z); 
     } 
}