我正在为坦克游戏制作机器人,现在我正试图让他逃避障碍。为此,我使用RayCastHit,问题是我的RayCastHit接缝忽略了障碍。到目前为止我已经
了public float sensor_length = 10f;
显示允许传感器的持续时间
public float car_length = -5f;
水箱旋转180度,这导致传感器从前面射出。 我有一个方法:
RaycastHit hit;
Vector3 sensorStartpos = transform.position;
sensorStartpos.z += car_length;
if(Physics.Raycast(sensorStartpos,transform.forward,out hit,sensor_length))
{ }
Debug.DrawLine(sensorStartpos, hit.transform.position);
所以我得到了我的对象转换点,然后找到它的前面,它应该触发一个RayCast。问题就出现了,如图所示我没有识别hit
因此它的值为null
而在if
语句中我应该向下一个障碍物发出一个检查,但是它会触发一个点到点(0,0,0)(我猜是因为hit = null
我如何让它碰到障碍物呢?
(底部的调试行导致Ray Cast可视化)