Unity 获取当前物体正前方,一定角度、距离的坐标点 | 您所在的位置:网站首页 › 新闻正前方几点 › Unity 获取当前物体正前方,一定角度、距离的坐标点 |
1.有时场景中需要让固定物体或Canvas生成在角色正前方(VR中比较常用) 代码很简单: Vector3 targetPos = rig.transform.forward * 2f + rig.transform.position; wui.transform.position = targetPos; wui.transform.LookAt(rig.transform);还可以加上角度: public Vector3 GetPosition(Quaternion rotation, Vector3 position, float distance) { Vector3 direction = rotation * Vector3.forward; return position + (direction * distance); }如果是对象是Canvas(world Space模式),注意画布的正反,可以通过修改scale改变画布的翻转:如,gui.transform.localScale=Vector3(-1,1,1) 2.比如我想获取某个点在我正前方的角度值(需要同一层级的节点,不同层级需要先转换坐标) public class Example : MonoBehaviour{ public float angleBetween = 0.0f; public Transform target; void Update() { Vector3 targetDir = target.position - transform.position; angleBetween = Vector3.Angle(transform.forward, targetDir); } }Vector3相减获得方向向量,然后和transform.forward取角度。 3.注意这两个常用forward的区别
|
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |