Client Sprite cant be controlled when spawned by NetworkManager

Im currently working on a mobile 2d multiplayer game. My problem is that when the client app connects to the host app, the client’s sprite can’t be controlled. It does not move. However the host’s sprite can move freely.

Here is my PlayerManager script.

using UnityEngine;
using System.Collections;
using Spine;
using System;
using Spine.Unity;
using UnityEngine.Networking;

public class PlayerManager : NetworkBehaviour{
	/*
		SYNC FLIP!!!!!!
	 */
	

	static float speedX;
	static float speedY;
	static bool facingright;

	static Animator anim;
	static Rigidbody2D myBody;
	static SkeletonAnimator skelAnim;

	public override void OnStartLocalPlayer(){
		GetComponent<PlayerManager> ().enabled = true;
		Camera.main.enabled = true;
		GetComponent<FollowCam> ().enabled = true;
		GetComponentInChildren<MeshRenderer> ().enabled = true;
	}

	void Start () {
		if (!isLocalPlayer) {
			Camera.main.enabled = false;
		}
		myBody = GetComponent<Rigidbody2D> ();
		anim = GetComponent<Animator> ();
		facingright = true;
	}	
	// Update is called once per frame
	void Update (){	
		MovePlayer (speedX);
		if (facingright && speedX < 0 || !facingright && speedX > 0) {
			facingright = !facingright;
			flipHere ();
		}
	}

	void MovePlayer(float playerSpeed){
		myBody.velocity = new Vector3 (playerSpeed, myBody.velocity.y, 0);
	}

	public void WalkLeft(){
		speedX = 5;
		anim.SetBool ("Speed", true);
	}

	public void WalkRight(){
		speedX = -5;
		anim.SetBool ("Speed", true);
	}

	public void jump(){
		speedY = 7;
		myBody.velocity= new Vector3 (speedX, speedY,0);
	}

	public void PlayerIdle(){
		speedX = 0;
		anim.SetBool ("Speed", false);
	}

	public void PlayerJumpIdle(){
		speedY = 0;
	}

	void flipHere(){
		Vector3 flipSprite = transform.localScale;
		flipSprite.x *= -1;
		transform.localScale = flipSprite;
	}

	void OnTriggerEnter2D(Collider2D other){
		if (other.tag == "ground") {
			anim.SetBool ("isGrounded", true);
		}
	}
	
	void OnTriggerExit2D(Collider2D other){
		if (other.tag == "ground") {
			anim.SetBool ("isGrounded", false);
		}
	}
}

If you want to control the character on the client, make sure you give the client authority over it.

Activate LocalPlayerAuthority on the NetworkIdentity component.