我目前正在Unity(2018.4)中从事塔防游戏。我对这个软件和C#非常陌生。现在我有一个化身,可以通过NavMesh平面在游戏屏幕上移动。
下面我的图片中的橙色框显示了透明平面所在的位置。我的游戏地图(棕色和绿色)由纹理图块组成。
我的头像是您在屏幕上看到的灰色东西。我使用NavMeshAgent和一些脚本根据鼠标在游戏地图上的点击位置来移动我的头像。
下面是我的化身运动视频的链接。
我正在尝试以下两个问题的帮助。
1)当我将头像移动到更高的位置(即,更高的瓷砖堆)时,他消失在瓷砖内(请参阅gif)。我希望虚拟化身站在瓷砖的上方或旁边的较低位置。
2)当我单击游戏地图中的图块以指示我的化身移动到那里时,我需要一些点击位置的指示或动画。 (即,在我的鼠标点击位置上出现箭头或圆圈)。
对此的任何帮助将不胜感激。
在#1上:
请确保您的图块GameObjects具有对撞机。将化身的图层设置为“忽略Raycast”。然后从与化身相同的x和z坐标的点调用Physics.RayCast
,但在最高点上方的Y坐标处,可能会到达图块。在通话中设置遮罩,以使“忽略射线广播”层上的GameObjects不会产生匹配。 RayCast
将返回一个坐标,您可以从中检索Y
值并将其用于化身在图块上的位置。有关调用Raycast
的更多信息,请参见-https://docs.unity3d.com/ScriptReference/Physics.Raycast.html。
在#2上:
我认为您不应该问两个问题,所以我故意不回答第二个问题。建议您编辑问题以删除问题2。然后只问一个关于堆栈溢出的单独问题。这是一种更好的信息结构方式,以便除您之外的其他人可以从问题的答案中学习。我说的很友好。