2016-02-18 25 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); 
     } 
}