2016-09-21 49 views
0

我正在Unity中使用c#进行突破式风格游戏,并且想知道在不改变球行进的角度/方向的情况下,随着时间的推移增加球的速度的最佳方法在与桨碰撞后,所以我希望球以相同的方向/角度(比如45度)行进。统一性增加球速同时保持方向恒定

首先,我使用下面的简单代码附加到桨左侧的箱式碰撞器上,以便根据需要向左移动球。这个角度是正确的,但我想随着时间的推移增加速度,但不知道如何。

void OnCollisionEnter2D(Collision2D col) { 

    if (col.gameObject.tag == "ball") { 
     col.gameObject.GetComponent<Rigidbody2D>().velocity = new Vector2 (-10f, col.gameObject.transform.position.y); 
    } 
} 
+0

你想让它达到最大速度还是不断变快? –

+0

不要触摸速度,改用AddForce,让物理知道接下来会发生什么。要随着时间的推移加速使用球的Update()方法。例如。 if(isBallSpeeding)[ballGO's RB2D] .AddForce(amount,type); – 2016-09-21 06:58:54

+0

不断变得更快 – Kaz

回答

1

我只是忘了尝试最基本的解决方案,它是通过速度变量乘以矢量,杜!这是我以后的预期行为。

col.rigidbody.velocity = new Vector2 (-10f, col.gameObject.transform.position.y) * speed; 
相关问题