问题描述
我们通常要检测主体周围是否有其他物体,就是主体的视线内是否能看到周围的物体。如果前方有障碍物则判断障碍物的高低,高于射线的障碍物会遮住主体的视线,而矮的障碍物就不会遮挡。如果要实现这种场景,我们就要用到unity种的射线检测。
一、检测一个物体
创建射线,并显示;
Ray ray = new Ray(transform .position , transform.forward);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, Mathf.Infinity))
{
if (hit.collider.gameObject.CompareTag("Obstacles"))
{
Debug.Log("检测到物体");
}
}
float distance = 0f;
if (hit.collider == null)
{
distance = 100f;
}
else
{
distance = Vector3.Distance