[Unity]什么是Raycast?
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/228
在射击游戏里面,比如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(起始位置,方向向量,返回信息,射线最大值)
参考文档:
[2] Unity - Scripting API:Physics Raycast
This article was last edited at 2020-04-04 10:09:40