您的位置:首页 > 移动开发 > Unity3D

Unity3D 摄像机的Transform通过摇杆输出的方向

2016-07-13 14:38 886 查看
要解决的问题是:摄像机的方向不固定,当摇杆向前(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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: