is raised when an agent
stops touching the object
ed to. The number of touching agents is passed to the script in the num_detected parameter
. Information on those objects may be gathered via the llDetected*
| Event: || Triggered: || Triggered multiple times: |
| touch() || while a user is clicking on the object. || YES |
| touch_start() || when a user starts clicking on the object. || NO |
| touch_end() || when a user stops clicking on the object. || NO |
- "Touch" means "click on", not "collide with"; to deal with collisions, use the collision, collision_start, and collision_end events.
- Scripts containing a touch, touch_start, or touch_end event may be subject to "prim drift" caused by the user dragging the object when they mean to click it. To avoid this, use llSetStatus(STATUS_BLOCK_GRAB, TRUE) to block grabs, or see below.
- This kind of drift happens if the script changes state while the mouse button is down and the new state does not have any of the 3 touch event handlers. Adding a handler that does nothing to these states also avoids the problem, while still allowing the user to control-drag the object.
- The "NO" in the table above is inaccurate. Your script can get multiple touch_start or touch_end events on a single mouse click. Go figure! This happens with some mice but not others, and is probably mouse driver related.
See also the llSetTouchText