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;
    }

 

posted @ 2016-07-13 14:38  MrBlue  阅读(1217)  评论(0编辑  收藏  举报