Unity3D 摄像机的Transform通过摇杆输出的方向
要解决的问题是:摄像机的方向不固定,当摇杆向前(0,1)推时,主角要往摄像机的朝向(忽略Y方向)走,当摇杆往右(1,0)推的时,主角朝摄像机的右方向
/// <summary> /// 摄像机的Transform通过摇杆输出的方向 /// </summary> /// <param name="t">摄像机的transform</param> /// <param name="dir">摇杆的方向</param> /// <returns></returns> public static Vector2 Transform2Dir(Transform t,Vector2 dir) { //注意:1、摄像机的Y轴角度和摇杆的坐标系是反方向的 2、角度和弧度 var f = Mathf.Deg2Rad*(-t.rotation.eulerAngles.y); //方向标准化 dir.Normalize(); //旋转角度 var ret = new Vector2(dir.x * Mathf.Cos(f) - dir.y * Mathf.Sin(f), dir.x * Mathf.Sin(f) + dir.y * Mathf.Cos(f)); return ret; }