Unity日常

Unity-计算正方向与水平面的夹角

有些时候,我们需要计算在三维空间中角色或车的正方向与水平地面的倾斜角度或坡度。

其实计算起来也相当简单

我们知道在unity中一个物体的transform.forward表示该物体在世界坐标中的正方向,

那么,如果我们把transform.forward的Y轴(unity中三维坐标系中Y轴表示高度)忽略掉,就能得到其在世界坐标水平边的正方向。

编写如下脚本

public class Controller : MonoBehaviour {


	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {

        //忽略Y轴  得到水平面上的正方向
        Vector3 horizontalForward = new Vector3(transform.forward.x, 0, transform.forward.z);

        //水平面的正方向
        Debug.DrawRay(transform.position, horizontalForward * 100,Color.yellow);
        //基于世界坐标的正方向
        Debug.DrawRay(transform.position, transform.forward * 100, Color.blue);

        //角度
        Debug.Log(Vector3.Angle(horizontalForward, transform.forward));

	}
}

在场景中创建一个cube,让后挂上脚本。
20160923112501
运行即可
20160923112625
黄色的线为cube在世界坐标水平面上的正方向。
蓝色的线为cube在世界坐标上的正方向。

(1)

本文由 树莓屋 作者:Berry贝锐 发表,转载请注明来源!

关键词:

热评文章

发表评论