3d Joystick pack error

These errors came out during following this.
I’m using Standard Assets and Joystick pack.

Below is the three scripts.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Joystick), true)]
public class JoystickEditor : Editor
{
private SerializedProperty handleRange;
private SerializedProperty deadZone;
private SerializedProperty axisOptions;
private SerializedProperty snapX;
private SerializedProperty snapY;
protected SerializedProperty background;
private SerializedProperty handle;

protected Vector2 center = new Vector2(0.5f, 0.5f);

protected virtual void OnEnable()
{
    handleRange = serializedObject.FindProperty("handleRange");
    deadZone = serializedObject.FindProperty("deadZone");
    axisOptions = serializedObject.FindProperty("axisOptions");
    snapX = serializedObject.FindProperty("snapX");
    snapY = serializedObject.FindProperty("snapY");
    background = serializedObject.FindProperty("background");
    handle = serializedObject.FindProperty("handle");
}

public override void OnInspectorGUI()
{
    serializedObject.Update();

    DrawValues();
    EditorGUILayout.Space();
    DrawComponents();

    serializedObject.ApplyModifiedProperties();

    if(handle != null)
    {
        RectTransform handleRect = (RectTransform)handle.objectReferenceValue;
        handleRect.anchorMax = center;
        handleRect.anchorMin = center;
        handleRect.pivot = center;
        handleRect.anchoredPosition = Vector2.zero;
    }
}

protected virtual void DrawValues()
{
    EditorGUILayout.PropertyField(handleRange, new GUIContent("Handle Range", "The distance the visual handle can move from the center of the joystick."));
    EditorGUILayout.PropertyField(deadZone, new GUIContent("Dead Zone", "The distance away from the center input has to be before registering."));
    EditorGUILayout.PropertyField(axisOptions, new GUIContent("Axis Options", "Which axes the joystick uses."));
    EditorGUILayout.PropertyField(snapX, new GUIContent("Snap X", "Snap the horizontal input to a whole value."));
    EditorGUILayout.PropertyField(snapY, new GUIContent("Snap Y", "Snap the vertical input to a whole value."));
}

protected virtual void DrawComponents()
{
    EditorGUILayout.ObjectField(background, new GUIContent("Background", "The background's RectTransform component."));
    EditorGUILayout.ObjectField(handle, new GUIContent("Handle", "The handle's RectTransform component."));
}

}

using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;

namespace UnityStandardAssets.Characters.ThirdPerson
{
[RequireComponent(typeof (ThirdPersonCharacter))]
public class ThirdPersonUserControl : MonoBehaviour
{
public float h
public float v
private ThirdPersonCharacter m_Character; // A reference to the ThirdPersonCharacter on the object
private Transform m_Cam; // A reference to the main camera in the scenes transform
private Vector3 m_CamForward; // The current forward direction of the camera
private Vector3 m_Move;
private bool m_Jump; // the world-relative desired move direction, calculated from the camForward and user input.

    private void Start()
    {
        // get the transform of the main camera
        if (Camera.main != null)
        {
            m_Cam = Camera.main.transform;
        }
        else
        {
            Debug.LogWarning(
                "Warning: no main camera found. Third person character needs a Camera tagged \"MainCamera\", for camera-relative controls.", gameObject);
            // we use self-relative controls in this case, which probably isn't what the user wants, but hey, we warned them!
        }

        // get the third person character ( this should never be null due to require component )
        m_Character = GetComponent<ThirdPersonCharacter>();
    }

    private void Update()
    {
        if (!m_Jump)
        {
            m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
        }
    }

    // Fixed update is called in sync with physics
    private void FixedUpdate()
    {
        // read inputs
        float h = CrossPlatformInputManager.GetAxis("Horizontal");
        float v = CrossPlatformInputManager.GetAxis("Vertical");
        bool crouch = Input.GetKey(KeyCode.C);

        // calculate move direction to pass to character
        if (m_Cam != null)
        {
            // calculate camera relative direction to move:
            m_CamForward = Vector3.Scale(m_Cam.forward, new Vector3(1, 0, 1)).normalized;
            m_Move = v*m_CamForward + h*m_Cam.right;
        }
        else
        {
            // we use world-relative directions in the case of no main camera
            m_Move = v*Vector3.forward + h*Vector3.right;
        }

#if !MOBILE_INPUT
// walk speed multiplier
if (Input.GetKey(KeyCode.LeftShift)) m_Move *= 0.5f;
#endif

        // pass all parameters to the character control script
        m_Character.Move(m_Move, crouch, m_Jump);
        m_Jump = false;
    }
}

}

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.Characters.ThirdPerson;
using UnityStandardAssets.CrossPlatformInput;

public class ThirdPersonInput : MonoBehaviour
{

public FixedJoystick LeftJoystick;
public FixedButton Button;
public FixedTouchField TouchField;
protected ThirdPersonUserControl Control;

protected float CameraAngle;
protected float CameraAngleSpeed = 0.2f;

// Use this for initialization
void Start()
{
    Control = GetComponent<ThirdPersonUserControl>();

}

// Update is called once per frame
void Update()
{
    Control.float h = LeftJoystick.inputVector.x;
    Control.float v = LeftJoystick.inputVector.y;

    CameraAngle += TouchField.TouchDist.x * CameraAngleSpeed;

    Camera.main.transform.position = transform.position + Quaternion.AngleAxis(CameraAngle, Vector3.up) * new Vector3(0, 3, 4);
    Camera.main.transform.rotation = Quaternion.LookRotation(transform.position + Vector3.up * 2f - Camera.main.transform.position, Vector3.up);

}

}

Okay, fixed all without one.

NullReferenceException: Object reference not set to an instance of an object
ThirdPersonInput.Update () (at Assets/ThirdPersonInput.cs:34)

What is the problem?