如何确定玩家(圆柱体)何时在 unity 3D 中移动到平面上方?

How to determine when player (cylinder) has moved above a plane in unity 3D?

我正在做一个送货游戏,临时设计了我的游戏,让现在是圆柱体的玩家必须找到一个平面的送货位置,然后移动到它上面才能送货。

我尝试在平面上添加一个 2d 盒碰撞器来检测玩家何时与平面发生碰撞,但碰撞器仅在 x、y 轴上起作用,我无法将其旋转 90 度。

所以我的问题是确定玩家何时移动到平面上方的最佳方法是什么?

这里有一张图片来说明我的意思:

进入飞机前

我如何检测到这个:

玩家在飞机上方

首先,确保至少有一个对象具有 rigid-body 组件。如果您使用角色控制器来控制您的玩家,请将刚体添加到平面。如果不想让刚体影响平面,只要冻结所有的位置和旋转约束即可。接下来,确保两个对象都有 3D 对撞机,而不是 2D。您的游戏是 3D 的,需要 3D 碰撞器。 2D 适用于精灵等 2D 游戏。 (我建议玩家使用圆柱形碰撞器,飞机使用盒子碰撞器。)确保启用了飞机的碰撞器“isTrigger”。这应该可以帮助您检测碰撞。