To solve the problem is: the direction of the camera is not fixed, when the rocker forward (0,1) push, the protagonist to the camera orientation (ignoring the y direction) to go, when the rocker to the right (1,0) push, the protagonist towards the right direction of the camera
/// <summary> ///transform of the camera through the rocker output direction/// </summary> /// <param name= "T" >transform of the camera</param> /// <param name= "dir" >the direction of the joystick</param> /// <returns></returns> Public StaticVector2 transform2dir (Transform t,vector2 dir) {//Note: 1, the y-axis angle of the camera and the coordinate system of the joystick are 2, angles and radians in the opposite direction varF = mathf.deg2rad* (-t.rotation.eulerangles.y); //Direction Standardizationdir. Normalize (); //Rotation Angle varRET =NewVector2 (Dir.x * Mathf.cos (f)-dir.y * Mathf.sin (f), dir.x * Mathf.sin (f) + dir.y *Mathf.cos (f)); returnret; }
Unity3d the transform of the camera through the joystick output direction