Input prints fine, but doesn't move the player?

Someone out there please help me ;-; I am gonna go crazy

I am trying to get a joystick Vector 3 input that will then be passed down to the player movement control where it is used to add force to the rigid body. I have two ways of output one that uses keyboard when joystick is not used and it outputs joystick when it is being dragged around. Everything passes down to playerControler fine and I print the input to make sure the values are correct, but for some reason it refuses to move ONLY when using joystick (keyboard part works fine)

Player move Controler script

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControl : MonoBehaviour
{
    public float movementSpeed;
    public GameObject Bullet;
    public Transform bulletSpawn;
    public float minBulletSpeed, maxBulletSpeed;
    public VirtualJoystick joystick;

    private Vector3 input;
    private bool canShoot=true;
    // Update is called once per frame
    void Update()
    {
        if (Input.GetButton("Horizontal") || Input.GetButton("Vertical"))
        {
            input = new Vector3(joystick.Horizontal(), 0, joystick.Vertical());
            print(input);
            transform.rotation = Quaternion.LookRotation(input);
                if (Input.GetButton("Horizontal") && Input.GetButton("Vertical"))
                {
                    GetComponent<Rigidbody>().velocity = input * movementSpeed / 1.414f;
                    //print("My Speed is " + (GetComponent<Rigidbody>().velocity.magnitude));
                }
                else
                {
                    GetComponent<Rigidbody>().velocity = input * movementSpeed;
                    //print("My Speed is " + (GetComponent<Rigidbody>().velocity.magnitude));
                }
        }

[code]

Script that gets joystick input and returns it to player Controler
[code]
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
public class VirtualJoystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IPointerDownHandler
{
    private Image bgImg;
    private Image joystickImg;
    private Vector3 inputVector;
    private void Start()
    {
        bgImg = GetComponent<Image>();
        joystickImg = transform.GetChild(0).GetComponent<Image>();
    }
    public virtual void OnDrag(PointerEventData ped)
    {
        Vector2 pos;
        if (RectTransformUtility.ScreenPointToLocalPointInRectangle(bgImg.rectTransform
                       , ped.position
                       , ped.pressEventCamera
                       , out pos))
        {
            pos.x = (pos.x / bgImg.rectTransform.sizeDelta.x)-0.5f;//
            pos.y = (pos.y / bgImg.rectTransform.sizeDelta.y)-0.5f;
            inputVector = new Vector3(pos.x*2, 0, pos.y*2); //*2 + 1 * 2 - 1
            inputVector = (inputVector.magnitude > 1.0f) ? inputVector.normalized : inputVector;
            print(inputVector);
            joystickImg.rectTransform.anchoredPosition =
             new Vector3(inputVector.x * (bgImg.rectTransform.sizeDelta.x/2.2f)
              , inputVector.z * (bgImg.rectTransform.sizeDelta.y)/2.2f);
        }
    }
    public virtual void OnPointerDown(PointerEventData ped)
    {
        OnDrag(ped);
    }

    public virtual void OnPointerUp(PointerEventData ped)
    {
        inputVector = Vector3.zero;
        joystickImg.rectTransform.anchoredPosition = Vector3.zero;
    }
    public float Horizontal()
    {
        if (inputVector.x != 0)
            return inputVector.x;
        else
            return Input.GetAxis("Horizontal");
    }
    public float Vertical()
    {
        if (inputVector.z != 0)
            return inputVector.z;
       else
            return Input.GetAxis("Vertical");
    }
}
[code]

ok I’m stupid i had an if statement making sure only keyboard works :roll_eyes: i love my brain