- Home /
Question by
semipsych · May 29, 2020 at 08:39 AM ·
rigidbody2dvelocityrigidbody.addforcerigidbody.velocity
Rigidbody2D.velocity is not working.
I was trying the new input system and I simply created a platformer controller but it seems rigidbody.velocity, where I tried to make a jump behavior, is not working and I couldn't understand why.
===========================================================================
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
[Header("Movement Attributes")]
public float speed;
public float dampTime;
[Header("Jumping Attributes")]
public float jumpHeight;
public Transform footTransform;
public float overlapCircleRadius;
public LayerMask whatIsGround;
private Vector2 movementInput = Vector2.zero;
private float horizontalInput = 0;
private float verticalInput = 0;
private bool canJump = false;
private new Rigidbody2D rigidbody;
private Vector2 refVelocity = Vector2.zero;
private void Awake()
{
rigidbody = GetComponent<Rigidbody2D>();
}
private void FixedUpdate()
{
Movement();
CheckGround();
}
private void CheckGround()
{
canJump = Physics2D.OverlapCircle(footTransform.position, overlapCircleRadius);
}
private void Movement()
{
Vector2 _desiredPosition = (rigidbody.position + new Vector2(horizontalInput, 0) * speed);
Vector2 _desiredVelocity = Vector2.SmoothDamp(rigidbody.position, _desiredPosition, ref refVelocity, dampTime);
rigidbody.MovePosition(_desiredVelocity);
}
public void GetMovementInput(InputAction.CallbackContext context)
{
movementInput = context.ReadValue<Vector2>();
horizontalInput = movementInput.x;
verticalInput = movementInput.y;
}
public void GetJumpInput(InputAction.CallbackContext context)
{
if (context.started && canJump)
{
Debug.Log("Jump");
rigidbody.velocity = new Vector2(rigidbody.velocity.x, jumpHeight);
}
}
} ===========================================================================
Comment
Your answer
Follow this Question
Related Questions
Gameobject going past target when using rigidbody2d.addforce 1 Answer
How can i initiate an object in parabolic motion without using gravity using Rigidbody2D? 1 Answer
How do I add forward velocity to a Rigidbody2D? 2 Answers
Rigidbody2D adding force vs modifying velocity for character jump 1 Answer