3rd person mobile control

Hi, i’m using player relative control from assets to move my character for my mobile game and i trying to make use just one joystick(left one) to control my movement and my camera rotation but when i move my joystick ‘X’ axis which suppose to make my character move left or right but my model face is not facing that direction it just like i moving like a crab(face forward but body moving left and right) anyone can help?here is code from player relative control that i already tweaked

function Update()
{
	var movement = thisTransform.TransformDirection( Vector3( moveJoystick.position.x, 0, moveJoystick.position.y ) );

	// We only want horizontal movement
	movement.y = 0;
	movement.Normalize();

	var cameraTarget = Vector3.zero;

	// Apply movement from move joystick
	var absJoyPos = Vector2( Mathf.Abs( moveJoystick.position.x ), Mathf.Abs( moveJoystick.position.y ) );	
	if ( absJoyPos.y > absJoyPos.x )
	{
		if ( moveJoystick.position.y > 0 ){
			movement *= forwardSpeed * absJoyPos.y;
			
		}
		else
		{
			movement *= backwardSpeed * absJoyPos.y;
			cameraTarget.z = moveJoystick.position.y * 0.75;
		}
	}
	else
	{
		movement *= sidestepSpeed * absJoyPos.x;
		
		// Let's move the camera a bit, so the character isn't stuck under our thumb
		cameraTarget.x = -moveJoystick.position.x * 0.5;
	}
	
	// Check for jump
	if ( character.isGrounded )
	{
		//if ( rotateJoystick.tapCount == 2 )
		//{
			// Apply the current movement to launch velocity		
		//	velocity = character.velocity;
		//	velocity.y = jumpSpeed;			
		//}
	}
	else
	{			
		// Apply gravity to our velocity to diminish it over time
		velocity.y += Physics.gravity.y * Time.deltaTime;
		
		// Move the camera back from the character when we jump
		cameraTarget.z = -jumpSpeed * 0.25;
		
		// Adjust additional movement while in-air
		movement.x *= inAirMultiplier;
		movement.z *= inAirMultiplier;
	}
		
	movement += velocity;	
	movement += Physics.gravity;
	movement *= Time.deltaTime;
	
	// Actually move the character	
	character.Move( movement );
	
	if ( character.isGrounded )
		// Remove any persistent velocity after landing	
		velocity = Vector3.zero;
	
	// Seek camera towards target position
	var pos = cameraPivot.localPosition;
	pos.x = Mathf.SmoothDamp( pos.x, cameraTarget.x, cameraVelocity.x, 0.3 );
	pos.z = Mathf.SmoothDamp( pos.z, cameraTarget.z, cameraVelocity.z, 0.5 );
	cameraPivot.localPosition = pos;

	// Apply rotation from rotation joystick
	if ( character.isGrounded )
	{
		var camRotation = moveJoystick.position;
		camRotation.x *= rotationSpeed.x;
		//camRotation.y *= rotationSpeed.y;
		camRotation *= Time.deltaTime;
		
		// Rotate the character around world-y using x-axis of joystick
		thisTransform.Rotate( 0, camRotation.x, 0, Space.World );
		
		// Rotate only the camera with y-axis input
		//cameraPivot.Rotate( camRotation.y, 0, 0 );
	}

}

fixed by using camera relative control