EKsumic's Blog

let today = new Beginning();

Click the left button to use the catalog.

OR

[Unity]什么是Raycast?

在射击游戏里面,比如CS,

当你射击的时候,不是实际上有个子弹飞出去了,

而是射线从枪口出来,到一个很远的距离,

凡是在这条射线路径上的玩家,都会受到伤害。

 

什么是Ray?

Ray,射线,从一点开始向单方向无限延伸的一根线。

出现这个想法,是为了的得到,这根线发射出去碰撞到了什么。

 

 

Physics.Raycast();

这个方法有15个重载,它最主要的参数有(射线的发射点,射线的方向,射线的最大距离,检测带不带碰撞器

它将返回一个bool值,

如果射线射程内有碰撞体,就返回true,没有的话则返回false。

 

ThirdPersonCharacter.cs中:

if (Physics.Raycast(transform.position + (Vector3.up * 0.1f), Vector3.down, out hitInfo, m_GroundCheckDistance))
 {
          
 }

表示 if(接触到地面==true)

在这个案例中,Physics.Raycast的参数是:

Physics.Raycast(起始位置,方向向量,返回信息,射线最大值)

 

 

 

参考文档:

[1] What is Raycast?

[2] Unity - Scripting API:Physics Raycast

This article was last edited at 2020-04-04 19:09:40

* *