Пока я знаю свой путь вокруг C# Я новичок в его использовании в разработке игр и Unity. Я хочу сделать мяч отскоком вверх и вниз. Я могу легко заставить мяч двигаться влево и вправо, но когда я меняю свой код с «броска» на «отскок», я получаю следующий результат: (Мяч по диагонали не вверх и вниз) Единство: перемещение спрайтов вверх и вниз
но что я хочу:
// 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);
}
}
Я уверен, что ответ должен быть что-то простое, но после долгого дня мой мозг пошел в кашицу. Может ли кто-нибудь посоветовать?
Ps рабочий слева направо код выглядит примерно так:
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