Do you need to know how to use a touch instead of a mouse event to cast a ray into a scene to see which object is there? Then this snippet is for you.
The touch events do not include ray info, but it’s easily calculated in really just a few lines of script.
In the example below, nX0 and nY0 are the touch events passed in through the touch API. They range from -1 to 1.
--[[nX0 and nY0 are the touch events passed in through the touch API, to onTouchesChanged for example. They range from -1 to 1]]-- local cam = application.getCurrentUserActiveCamera ( ) local s = application.getCurrentUserScene ( ) local camX, camY, camZ = object.getTranslation ( cam, object.kGlobalSpace ) local nRayPntX, nRayPntY, nRayPntZ = camera.unprojectPoint ( cam, nX0, nY0, 0 ) local vX,vY,vZ = math.vectorSubtract ( nRayPntX, nRayPntY, nRayPntZ, camX, camY, camZ ) local nRayDirX,nRayDirY,nRayDirZ = math.vectorNormalize ( vX, vY, vZ ) if ( s ) then local hHitObject, nHitDist, nHitSID = scene.getFirstHitSensor( s, nRayPntX, nRayPntY, nRayPntZ, nRayDirX, nRayDirY, nRayDirZ, 2000) if ( hHitObject ) then log.message ( "Hit Sensor ID :" .. nHitSID ) end end