Stack Overflow на русском Asked by Nobody on January 15, 2021
void Update()
{
float moveX = Input.GetAxis("Horizontal");
rb.MovePosition(rb.position + Vector2.right * moveX * speed * Time.deltaTime);
if (grounded && (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.W)))
//rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse); // резко
//rb.AddForce(new Vector2(0f, jumpForce)); --> не работает
//rb.AddForce(Vector2.up*8000*Time.deltaTime); //--> не работает с Time.deltaTime
Нашел в интернете 3 варианта, попробовал все, но прыжок все равно резкий (будто телепорт). Видел совет умножать на Time.deltaTime, но тогда персонаж вообще прыгать отказывается… Подскажите, как прыжок плавным сделать?
var jumpVectorAndPowerOfJump = new Vector2(0, 10);
rigidbody2D.AddForce(jumpVectorAndPowerOfJump , ForceMode2D.Impulse);
или
gameObj.rigidbody2D.AddForce(Vector3.up * 10 * Time.deltaTime);
//направление * на множитель силы прыжка * на промежуток времени пере просчетом следующей силы на прорисовке следующего кадра
Answered by Andrew on January 15, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP