- Home /
Need help affecting 2d jump with UnscaledDeltatime
I'm trying out time manipulation in Unity. I've been testing out slowing down and speeding up time in Unity while keeping the player at the same speed this week and I've gone from testing it in 3d to 2d. A problem I've run into is making the player jump while keeping the normal speed. For some reason the player's jump speeds up when changing the timescale to 2 or slows down when setting it below 1, despite putting UnscaledDeltatime in the movement script, and the players moves left and right as normal during both slow and sped up time.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TwoDimensionMove : MonoBehaviour
{
public TimeManager manager;
public float speed = 12;
public float gravity = -9.18f;
public float jumpForce = 3;
public Transform groundCheck;
public float groundDistance = 0.4f;
public LayerMask groundMask;
public bool isGrounded;
public Rigidbody2D RB;
Vector2 velocity;
// Start is called before the first frame update
void Start()
{
RB = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), 0, 0);
transform.position += movement * speed * Time.unscaledDeltaTime;
}
private void FixedUpdate()
{
Jump();
}
void Jump()
{
if (Input.GetButtonDown("Jump") && isGrounded)
{
RB.AddForce(new Vector2(0, Input.GetAxis("Jump")) * jumpForce * Time.unscaledDeltaTime, ForceMode2D.Impulse);
}
}
}
Your answer
Follow this Question
Related Questions
Unable to change Time.timeScale 2 Answers
2nd independent deltaTime and timeScale variables, or a way to mimic this? 1 Answer
How do I stop 'timeSinceLevelLoad' without pausing entire game? 2 Answers
Is it possible to change Time.timeScale to a value bigger than 100? 0 Answers
Enable jump when hitting ground? 0 Answers