要解决的问题是:摄像机的方向不固定,当摇杆向前(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;
}