TransWikia.com

не работает плавный прыжок в Unity2D

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, но тогда персонаж вообще прыгать отказывается… Подскажите, как прыжок плавным сделать?

One Answer

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP