unity3d - 如何使用 Vuforia 使 GameObjects 使用物理来相互交互?
问题描述
我正在将 Vuforia 用于 AR 学校项目,并正在尝试制作 Roll a Ball 游戏。然而,尽管地面和球都有碰撞体,但球还是会不断地从地面下落。球如何与地面相互作用?
解决方案
通常,您总是需要至少一个Rigidbody
才能通过物理引擎获得碰撞。
A
Rigidbody
是实现物理行为的主要组件GameObject
您可能会使用的是移动对象上的运动学。 Rigidbody
这是一个附有碰撞器和运动刚体的游戏对象(即,刚体的 IsKinematic 属性已启用)。您可以通过修改其变换组件从脚本中移动运动学刚体对象,但它不会像非运动学刚体那样响应碰撞和力。运动学刚体应该用于偶尔可以移动或禁用/启用的碰撞器,但在其他方面应该表现得像静态碰撞器。这方面的一个例子是滑动门,它通常应该作为一个不可移动的物理障碍,但可以在必要时打开。与静态对撞机不同,移动的运动刚体将对其他物体施加摩擦,并在它们接触时“唤醒”其他刚体。
即使在不动时,运动学刚体对撞机也具有与静态对撞机不同的行为。例如,如果对撞机设置为触发器,那么您还需要向其添加刚体,以便在脚本中接收触发器事件。如果您不希望触发器受重力影响或受到物理影响,则可以在其刚体上设置 IsKinematic 属性。
有关详细信息,请参阅Unity 手册 - 碰撞器,尤其是章节Collider Interactions
和Collision action matrix
推荐阅读
- android - DataStore 未收到来自 Flow 的事件
- neo4j - 如果我在具有不同数据库的组织中有多个系统。Neo4J 是否支持将它们全部放在一起
- javascript - 如何在 bootstrap4 中将导航链接向右移动?
- jodit - 如何在 Jodit 工具栏中启用托盘选项
- python-3.x - Python turtle - 在监听按键时暂停执行
- sas - 如何在sas中计算月份数
- c# - 如何为使用 JwtEncoder 的函数创建单元测试?
- android - 在后台发送请求
- python - Python:读取文件并将键和值添加到不同行的字典中
- git - 如何将 git repo 克隆到 Jenkins 中的特定路径,即 /var