【发布时间】:2020-05-12 04:56:10
【问题描述】:
我目前正在开发一款战术角色扮演游戏,并且我设置了墙以防止 NPC 移动到游戏区域之外。然而,NPC 正在穿墙而过。他有一个刚体,一个盒子对撞机附在他身上,他被触发了。此外,还标记了使用重力选项和运动学。墙壁有一个刚体和一个盒子对撞机。它们不会被触发。
我正在使用此代码来移动 NPC:
targetPosition.y = 1.4f;
targetPosition.x = this.transform.position.x + 3;
targetPosition.z = this.transform.position.z;
this.transform.position = Vector3.MoveTowards(transform.position, targetPosition, velocity);
我了解到这种移动方式可能会导致问题。对吗?
【问题讨论】:
-
您可能想要使用某种导航系统并通过给它一个目标来移动您的 NPC,从而计算出路径然后跟随它。 This should help
-
如果你在你的游戏对象上使用了刚体,那么你真的不应该接触
transform.position,而将这一切交给刚体来处理。您可以使用Rigidbody.MovePosition或Rigidbody.velocity告诉您的对象如何移动 :) -
@MaxPlay 我不知道如何使用导航系统。我认为如果我知道如何使用它会容易得多。
-
@JackJohn 我给你的链接是 Unity 的官方文档,甚至还有该主题的教程链接。这应该足以学习如何使用它。不仅要阅读我给您的页面,还要阅读子页面和链接。
-
@MaxPlay 该链接很棒,它包含有关此主题的所有内容。我目前正在阅读它并试图找到一种可以在我的游戏中使用的方法。谢谢你。