如何在Unity中自然地将车辆从一个坐标移动到另一个坐标?

我正在从事一个项目,对编码还是很陌生。该项目的目标是读取一张Excel工作表(在特定的模拟时间内包含车辆的前后坐标),并在Unity中模拟生成的动画。我知道如何将物体从一个地方移动到另一个地方。但是,我无法沿着道路行驶车辆并到达最终目的地。请记住,我只有两个车辆坐标位置(一个为初始位置,另一个为最终位置)。例如,如果最终目的地位于相邻道路上,则车辆需要在交叉路口自动转弯,如以下链接中的图像所示。

https://imgur.com/a/GA86BBn

目标1:车辆需要识别道路。

目标2:车辆应根据其下一组坐标自动转弯。

目标3:车辆需要自然行驶。车辆应始终面向行驶方向。简而言之,它应该改变车辆在现实世界中的移动方式。
ttqqcw 回答:如何在Unity中自然地将车辆从一个坐标移动到另一个坐标?

您要寻找的是NavMesh或路径查找算法。您可以编写自己的A *算法,这并不困难,并且您将学习编码。然后,您可以定义汽车可以行驶的地方;除非编写一个可以从地图中提取此信息的脚本,否则您可能必须手动执行此操作。然后,您将使用路径查找算法进行求解并遵循这些节点。

many explanations online可以helpunderstand。还有其他路径查找算法,请检查一下。

关于面对前进的方向,您只需获取前进方向,然后旋转其前向矢量以匹配该方向即可。

顺便说一句,这不是您的家庭作业解决网站。如果您想要基本的解释,或者应该在线搜索有数百种资源,就应该查看游戏开发者社区。​​ p>

,

如果您说您知道如何将一个物体从一个地方移动到另一个地方,那么我看不到问题。

您需要应用 car.transform.localPosition(xCorrdinate,yCorrdinate)作为参考,以参考您在excel工作表中拥有的值。将其放在update()方法上,并添加所需的延迟,以便可以看到从一个点到另一个点的过渡。

所以在更新中:

Update() 
{  
   car.transform.localPosition = Vector2.Lerp(car.transform.localPosition,new Vector2(newXCoordinate,newYCoordinate),Time.deltaTime * transitionSpeedTime); 
}

然后添加一个条件,如果到达新的目的地,则移至下一个条件。

祝你好运!

本文链接:https://www.f2er.com/3150928.html

大家都在问