雖然我知道我的方式C#我是在遊戲開發和Unity中使用它的新手。我想要讓球彈跳起來。我可以很容易地讓球左右移動,但是當我的代碼從「滾動」改變爲「反彈」時,我得到下面的結果:(球沿對角線不上下)統一:向上和向下移動Sprite
但是我想:
// Update is called once per frame
void Update() {
if (moveDown) {
transform.localScale = new Vector3 (-1f, 1f, 1f);
GetComponent<Rigidbody2D>().velocity = new Vector2 (speed, GetComponent<Rigidbody2D>().velocity.x);
} else {
transform.localScale = new Vector3 (1f, 1f, 1f);
GetComponent<Rigidbody2D>().velocity = new Vector2 (-speed, GetComponent<Rigidbody2D>().velocity.x);
}
}
我相信答案一定是簡單的東西,但一整天后,我的大腦已經到玉米粥。任何人都可以建議嗎?
詩左至右代碼工作是這樣的:
transform.localScale = new Vector3 (-1f, 1f, 1f);
GetComponent<Rigidbody2D>().velocity = new Vector2 (speed, GetComponent<Rigidbody2D>().velocity.y);
'var vel = GetComponent().velocity; vel.y * = -1; GetComponent ().velocity = vel;' –
Gusman
這似乎接近我所需要的,但並不完美。球慢慢地死了,但每秒都會有一點點震動,看起來就像在振動。我需要調查發生了什麼。 – Phil3992
只有當球擊中頂部或底部時,纔會調用代碼,而不是在每一幀上。 – Gusman