ue3d如何在Unity中创建射线

如何在Unity中创建射线

分类:
ue3d - 如何在Unity中创建射线

射线只是 Unity 中的一个数据结构,它表明射线的起点和行进的方向,那么原点是世界中光线将开始的位置,并采用向量 3 值,而方向属性采用归一化向量 3 形式的轨迹。

对向量进行归一化会将其大小的长度限制为 1,这对于表示一致的方向很有用。

有几种方法可以创建新的射线,我们可以手动创建射线:

// 从此对象创建一条射线,向前移动
Ray ray = new Ray(transform.position, transform.forward);

或许,也可以运用其中一个辅助函数自动创建射线,例如从相机视口中心开始的射线:

// 从视口中心创建射线
Ray ray = Camera.main.ViewportPointToRay(new Vector3 (0.5f, 0.5f, 0));

在上面的示例中,(0.5f, 0.5f, 0) 其中 0.5f 的值表示两个维度中视口的中间,当然我们也可以从屏幕上的鼠标位置生成射线:

// 从鼠标位置创建射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

这些辅助函数可以轻松地从世界现有点创建射线,但是,虽然可以缓存对创建的射线的引用,但仍然需要在每次使用它时对其进行更新。

因此,假如光线的原点和方向每帧都不同,那么也需要每帧更新光线:

Ray ray;
void Update()
{
    ray = transform.position, transform.forward;
}

否则,当使用射线时,它不会处于正确的位置。

相关信息

  • 类型:知识
  • 字数:348
  • 字符:1028
  • 平台:Unity
  • 说明:无
  • 编号:64209

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!