【发布时间】:2018-05-15 09:19:00
【问题描述】:
我得到了一个与障碍物统一的小场景,比如 AI 发射光线投射来检测它前面是否有墙,然后如果发生这种情况,它会决定旋转。我现在正在尝试获取多个光线投射,以便它可以检查相同但具有 +45 和 - 45 视角的视角,否则机器人只能检查其前光线。我该怎么做?下面的代码示例。
ray = new Ray(transform.position + Vector3.up, transform.forward);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 55f))
{
if (hit.collider.tag == ("Pick Up"))
{
Debug.DrawLine(ray.origin, hit.point, Color.red);
transform.position = Vector3.MoveTowards(transform.position, hit.point, Time.deltaTime * speed);
}
else
{
Debug.DrawLine(ray.origin, hit.point, Color.blue);
transform.Rotate(0, -80 * Time.deltaTime, 0);
}
}
else
{
transform.position += transform.forward * speed * Time.deltaTime;
Debug.DrawLine(ray.origin, hit.point, Color.white);
}
【问题讨论】:
-
做一个光线投射的粉丝。例如,在 -45 到 +45 之间每 5 度进行一次光线投射。我不认为您可以使用跨多个角度的连续光线投射。
标签: c# unity3d raycasting gameobject