Help weird joystick movement .what im try to do is get player look at camera Y Axis

Here is myscript

Public class playermovement: monoBehaviour{
 Public Transform target;
 Cameracontrol camcontrol;
 Public fixedjoystick joystick;
 Rigidbody RB;
 RB = Getcomponet<Rigidbody>();
 Camcontrol = target.getcomponet<cameracontrol>();
 Fixed update(){
 Vector3 movementdir = vector3.forwad * joystick.vertical + vector3.right * joystick.horizontal;
 RB.moveposition(transform.postion + movementdir * 1 * Time.FixedDeltaTime);
 // Make player face camera
 Vector3 desirepos = target.position + target.transform.forward - RB.transform.position
 Quaternion Lookatcamera = Quaternion.lookRotation(desirepos);
 // Make sure player only lookat Camera Y pos
 Quaternion LookatcameraYPOS = Quaternion.Euler(transform.rotation.eulerAngles.x,Lookatcamera.y, transform.rotation.eulerAngles.z);
 // Finally set rotation 
 transfrom.rotation = LookatcameraYPOS;

Everything work fine but whenever player rotate to camera position I’m getting odd joystick movement forward will be moving left and right will be moving forward any help pls I’m stuck.

Not sure, but maybe you should use transform.forward and transform.right instead of the Vector3 ones in line 13?