问题出在这里:line_velocity = (position -position ).normalized() * speed
时间: 2024-02-13 18:04:23 浏览: 127
是的,这里的问题在于你使用了相同的变量 "position" 来计算 "line_velocity"。这意味着你在计算 "line_velocity" 时,使用的是未定义的变量,从而导致了编译错误。
要修复这个问题,你需要在计算 "line_velocity" 之前,定义并初始化 "position" 变量。例如:
```
var position = $Position2D.position
line_velocity = (position - $Position2D2.position).normalized() * speed
```
在这个示例中,我们先定义了变量 "position" 并将其初始化为 $Position2D 节点的位置。然后,我们使用 "position" 变量和另一个节点的位置来计算 "line_velocity"。
请注意,在实际开发中,你可能需要根据具体情况调整变量名和节点名称。
相关问题
Vector3 toTarget = target.transform.position - transform.position; float lookaheadTime = toTarget.magnitude / (maxSpeed + target.GetComponent<Vehicle>().velocity.magnitude); desiredVelocity = (transform.position - (target.transform.position + target.GetComponent<Vehicle>().velocity * lookaheadTime)).normalized * maxSpeed; return (desiredVelocity - m_vehicle.velocity);解释下这段代码
这段代码是用于实现 AI 追踪目标的功能。首先,它计算了自身位置与目标位置之间的距离向量(toTarget)。接着,根据当前 AI 的最大速度和目标的速度,计算出“前瞻时间”(lookaheadTime),即为 AI 追逐目标需要的时间。然后,根据目标的位置、速度和前瞻时间,计算出期望速度(desiredVelocity)。最后,将期望速度和当前速度之间的差值作为 AI 的加速度,用于更新 AI 的运动状态。
阅读全文