Help with mobile joystick C#

So my controller works perfectly on the computer when dragged by a mouse, however, Im getting complaints that when on mobile the controls are buggy and not playable at all.

This is a video of our PC playing the game:

and here is the code I made to find out where the analog stick was… my only solution would be to turn the value into Screen.Width / something but Im somewhere lost as to how I can do this.

    [SerializeField]private bl_Joystick Joystick;//Joystick reference for assign in inspector
    [SerializeField]public bl_Joystick Joystick2;//Joystick reference for assign in inspector
    public Transform camera;
    public Animator anim;
    public float v;
    public float h;
    public float h2;
    [SerializeField]private float Speed = 5;


    void Update()
    {
        //Step #2

        //Change Input.GetAxis (or the input that you using) to Joystick.Vertical or Joystick.Horizontal
       v = Joystick.Vertical; //get the vertical value of joystick
       h = Joystick.Horizontal;//get the horizontal value of joystick
       h2 = Joystick2.Horizontal;//get the horizontal value of joystick
        //in case you using keys instead of axis (due keys are bool and not float) you can do this:
        //bool isKeyPressed = (Joystick.Horizontal > 0) ? true : false;

        //ready!, you not need more.

        if (v >= 0.1f && v <= 1.4f) {
            anim.SetBool ("walk", true);
            anim.SetBool ("walkb", false);
        }

        if (v >= 1.5f) {
            anim.SetBool ("run", true);
        }
           
        if (v <= -0.9f) {
            anim.SetBool ("walkb", true);
            anim.SetBool ("walk", false);
            anim.SetBool ("run", false);
        }

        if (v == 0) {
            anim.SetBool ("walk", false);
            anim.SetBool ("walkb", false);
            anim.SetBool ("run", false);
        }

        if (h2 >= 0.4f) {
            camera.Rotate (0, h2 * Time.deltaTime * 13, 0);
        }

        if (h2 <= -0.4f) {
            camera.Rotate (0, h2 * Time.deltaTime * 13, 0);
        }
    }

Uh, what’s the overall scale look like for v? Walk is between 0.1 and 1.4, and run is greater than 1.5? What’s the maximum value?

Most input systems (including Unity’s) I’ve seen use normalized values (0 to 1), then scale accordingly.

If your controls are misbehaving only on mobile, it could be that the bl_Joystick objects have not been set up properly to handle multiple touches, or as @BlackPete pointed out above, perhaps it isn’t normalizing properly.

Also, there may be “shunts” in the joystick code that directly map mouse motions when you are on a PC.Look for conditions based on Application.platform, for instance.

I have got only one error in v = Joystick.Vertical;

Please don’t hijack old threads. It’s against forum rules and you won’t get any useful help.

Instead, start your own post… it’s FREE!

When you post, how to report your problem productively in the Unity3D forums:

http://plbm.com/?p=220

How to understand compiler and other errors and even fix them yourself:

https://forum.unity.com/threads/assets-mouselook-cs-29-62-error-cs1003-syntax-error-expected.1039702/#post-6730855

If you post a code snippet, ALWAYS USE CODE TAGS:

How to use code tags: https://discussions.unity.com/t/481379