如何防止玩家走出地形边缘?

时间:2016-10-05 15:45:59

标签: c# unity3d

在这种情况下,我的地形变换是:位置X = -250 Y = 0 Z = -250 旋转0 0 0和标度1 1 1

地形分辨率为宽度500,长度500和高度600

因此,当我将物体移动到地形边缘时,如果我在某些高度中有一个ThirdPersonController或太空船,我希望它们停在那里而不是继续离开地形区域。

如何在c#脚本中计算它并防止对象离开地形边界?

Terrain

1 个答案:

答案 0 :(得分:1)

  1. 创建一个空的游戏对象并附加BoxCollider
  2. 配置BoxCollider:中心:0,0,0。边界:500,600,500。IsTrigger: On
  3. 将其正确放置在编辑器上。这将是你的限制区。
  4. 在脚本中附加脚本,插入此方法
  5. OnTriggerExit(Collider c) { /* Your code */ }

    每次对撞机离开BoxCollider时,您的代码都会被执行。如果那是你的玩家,重置它的位置,使其位于限制区域内,或者你可以使用物理力将他拉回来。

    https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerExit.html