概述
射线检测之基本使用
从开始点发射一条射线,按照指定的方向,和指定的长度(不指定则为无限长的),判断有没有与其它的碰撞体发生碰撞。
射线的基本碰撞检测
void Update () {
//创建射线,参数:(起点,方向)
//第一个参数+transform.forward是为了不跟自身发生碰撞
Ray ray = new Ray(transform.position+transform.forward, transform.forward);
bool isCollider = Physics.Raycast(ray);//射线碰撞检测,碰到物体后返回true
Debug.Log(isCollider);
}
射线检测之重载方法
创建射线
Ray ray = new Ray(transform.position + transform.forward, transform.forward);
//创建射线,参数:(起点,方向)
//第一个参数+transform.forward是为了不跟自身发生碰撞
创建碰撞信息
RaycastHit hit;
hit.collider; //射线碰撞到的碰撞器
hit.point; //射线碰撞到的点
layerMask参数
设置后只能与这里的层发生碰撞
LayerMask.GetMask("Enemy1", "Enemy2", "UI")
Raycast(Ray ray)
参数:射线
Raycast(Ray ray, float maxDistance)
参数1:射线,2:射线的距离
bool isCollider = Physics.Raycast(ray, 1);
Raycast(Ray ray, out RaycastHit hitInfo)
参数1:射线,2:碰撞信息
bool isCollider = Physics.Raycast(ray, out hit);
Raycast(Ray ray, float maxDistance, int layerMask)
参数1:射线,2:距离无限长,3:要发生碰撞的层
bool isCollider = Physics.Raycast(ray, Mathf.Infinity, LayerMask.GetMask("Enemy1", "Enemy2", "UI"));
Raycast(Vector3 origin, Vector3 direction)
参数:起点,方向
Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance)
参数:射线,碰撞信息,距离
Raycast(Vector3 origin, Vector3 direction, float maxDistance)
参数:起点,方向,距离
Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo)
参数:起点,方向,碰撞信息
Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance, int layerMask)
参数:射线,碰撞信息,距离,要发生碰撞的层
Raycast(Vector3 origin, Vector3 direction, float maxDistance, int layerMask)
参数:起点,方向,距离,要发生碰撞的层
Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance)
参数:起点,方向,碰撞信息,距离
Raycast(Vector3 origin, Vector3 direction, float maxDistance, int layerMask)
参数:起点,方向,距离,要发生碰撞的层
RaycastHit[] RaycastAll(Ray ray, float maxDistance, int layerMask)
返回所有物体的碰撞信息
关于2D射线检测和检测碰撞到所有物体
RaycastHit2D Raycast(Vector2 origin, Vector2 direction, float distance, int layerMask, float minDepth)
参数:起点,方向,距离,要发生碰撞的层,深度
RaycastHit[] RaycastAll(Ray ray, float maxDistance, int layerMask)
返回所有物体的碰撞信息
最后
以上就是负责小松鼠为你收集整理的Unity API Raycast射线的使用射线检测之基本使用射线检测之重载方法关于2D射线检测和检测碰撞到所有物体的全部内容,希望文章能够帮你解决Unity API Raycast射线的使用射线检测之基本使用射线检测之重载方法关于2D射线检测和检测碰撞到所有物体所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复