1.用Physics.Raycast进行射线检测
物体必须有Collider碰撞组件。
//定义一条射线,起点为GO1的物体坐标,终点为GO2的物体坐标
Ray ray = new Ray(GO1.transform.position, GO2.transform.position - GO1.transform.position);
//定义一个光线投射碰撞
RaycastHit hit;
//发射射线长度为100
Physics.Raycast(ray, out hit, 100);
if (hit.transform != null)
{
Debug.Log("blocked:" + hit.transform.name);
}
//在Scene中生成这条射线,起点为射线的起点,终点为射线与物体的碰撞点
Debug.DrawLine(GO1.transform.position,GO2.transforme.position);
如果射线是以GO2的物体的坐标,终点为GO1的物体的坐标,就得写成以下的方式。
Ray ray = new Ray(GO2.transform.position,GO1.transform.position - GO2.transform.position);
2.用Physics.Linecast进行射线检测