Thanks Jimmanator,
i forgotten to add camera position in the "target" ray coords (...).
But for some reason i had to make some changes to get it working :
worldX# = Get3DVectorXFromScreen( GetPointerX(), GetPointerY() ) * 800
worldY# = Get3DVectorYFromScreen( GetPointerX(), GetPointerY() ) * 800
worldZ# = Get3DVectorZFromScreen( GetPointerX(), GetPointerY() ) * 800
worldX# = worldX# + GetCameraX( 1 )
worldY# = worldY# + GetCameraY( 1 )
worldZ# = worldZ# + GetCameraZ( 1 )
// ObjectSphereCast (with a very small radius) instead of ObjectRayCast which doesn't work in my case (why ? i don't know)
ObjectSphereCast(0,getcamerax(1),getcameray(1),getcameraz(1), worldX#,worldY#,worldZ#,0.001)
if (GetObjectRayCastNumHits()>0)
// I have to get the last ID to get the nearest (first) object (why Hit indexes are reversed ? due to 3D Screen transformation or raycast parameters inversion maybe ?...)
DebugLog(str(GetObjectRayCastHitID( GetObjectRayCastNumHits()-1 )))
// make it red :)
SetObjectColor(GetObjectRayCastHitID( GetObjectRayCastNumHits()-1 ),255,0,0,255)
endif
And then ... everything work as expected