2016-09-21 6 views
0

유니티에서 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의 RB2D] .AddForce (amount, type); –

+0

지속적으로 빠르다 – Kaz

답변

1

는 단순히 대만족, 속도 변수에 의해 벡터를 곱하는 것입니다 가장 기본적인 솔루션을 시도하는 것을 잊었다! 이것은 의도했던 행동입니다.

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