object.isSensor

类型 布尔类型
对象 Body
physics.*
修订 版本 2024.3703
关键词 body, isSensor

概述

传感器是检测碰撞但不产生物理响应的固定装置。传感器不会生成接触点。

isSensor 属性为仅设置布尔值, 如果设置为 true, 对象将不会发生任何可见的碰撞, 不过仍然会发出 "began""ended" 碰撞事件。

陷阱

单面平台

对于单面平台, 跳跃的角色从下方通过可以, 但从上方落下则不行, isSensor 属性可能不足以应对所有情况。相反, 可以考虑 isEnabled 属性, 这是 PhysicsContact 对象的属性。

固定装置

在 Box2D 中, isSensor 是特定固定装置的属性, 或者用 Corona 术语来说, 是“body element”的属性—它不是整个 body 的属性。不过, Corona 目前不提供 body 创建 之后访问单个 body element 的方法, 因此无法在创建 body 之后为单个 body element 设置属性。因此, 设置isSensor = true针对 body 会为整个 body 设置此行为。此行为的一个影响涉及一些元素是传感器而另一些元素不是的复杂物理 body—在这种情况下, isSensor 属性将永久覆盖单个 body element 设置。

示例

local laserBeam = display.newImage( "laserBeam.png" )
physics.addBody( laserBeam, "dynamic" )
laserBeam.gravityScale = 0

-- Make the object a "bullet" type object
laserBeam.isBullet = true

-- Make the object a sensor
laserBeam.isSensor = true

laserBeam:setLinearVelocity( 400, 0 )