【发布时间】:2021-05-06 12:47:49
【问题描述】:
我正在开发一款赛车游戏,其中我有一个带有路点的预定义路径,我想要实现的是,我希望我的玩家遵循路径的一般方向,但仍然完全控制我的玩家。如,它一直沿着路径前进,但我应该能够左右移动它以避开障碍物。
这是我现在使用的一段代码。
#region Following the path
if (PathGenerator.instance.wayPoints.Count > 0)
{
Transform currentNode = PathGenerator.instance.wayPoints[currentNodeCount];
transform.position = Vector3.MoveTowards(transform.position, currentNode.position, forwardSpeed * Time.deltaTime);
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(currentNode.position - transform.position), 1 * Time.deltaTime);
float distance = Vector3.Distance(transform.position, currentNode.position);
if(distance < 1f)
{
if(currentNodeCount < PathGenerator.instance.wayPoints.Count - 1)
currentNodeCount++;
}
}
#endregion
但这里的问题是玩家会直接进入航路点,即使我左右移动它也是如此。它只会回到航路点的中心。 观看 gif:-
你可以看到它是如何回到中心跟随航路点的,我无法像这样控制玩家。我想要的只是玩家跟随电路路径本身,但我想控制它的 X 轴以避免障碍。
有人可以在这里指导我并帮助我解决我的问题吗?任何帮助或想法将不胜感激。
谢谢。
【问题讨论】:
-
保持球员位置和限制前进,球员只能左右移动。并按照您的路径向前移动路径,类似于无尽的跑步游戏。
-
对不起,我不明白。能详细点吗?
标签: c# unity3d artificial-intelligence