画射线,射线检测
[RequireComponent(typeof(LineRenderer))]
//射线
public LineRenderer line;
void Update()
{
//射线检测,画射线
RayBehaviour();
//射线检测
RayBuild();
}
public void RayBehaviour()
{
//0 表示射线的起点
line.SetPosition(0, OriginPos.position);
Ray ray = new Ray(OriginPos.position, OriginPos.forward);
RaycastHit hitInfo;
//20是射线的长度,射线检测
if (Physics.Raycast(ray, out hitInfo, 20))
{
//1 是射线的终点,当然了后面还可以添加很多值 可以画折线什么的 2 3 4,每一个都是一个线段的位置
line.SetPosition(1, hitInfo.point);
//cursor.position = hitInfo.point;
}
else
{
//检测在射线前方没有物体时,设置射线的长度
line.SetPosition(1, OriginPos.position + OriginPos.forward * 1);
//这个是自己做的一个物体的跟随,cursor的位置一直处于射线的前端
//cursor.position = OriginPos.position + OriginPos.forward * 1;
}
}
//射线检测
void RayBuild()
{
Ray ray = new Ray(OriginPos.position, OriginPos.forward);
RaycastHit hitInfo;
if (Physics.Raycast(ray, out hitInfo, 20,~(1<<10)))
{
Debug.Log(hitInfo.transform);
Debug.Log(hitInfo.transform.name);
}
}