Unity 获取当前物体正前方,一定角度、距离的坐标点 您所在的位置:网站首页 新闻正前方几点 Unity 获取当前物体正前方,一定角度、距离的坐标点

Unity 获取当前物体正前方,一定角度、距离的坐标点

2024-07-17 12:43| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有