Hello everyone,
I am using Unity 2018.1.0f2.
According to the Unity Manual, Physics2D.RaycastNonAlloc() should work just like Physics2D.RaycastAll(), in terms of objects hit.
I want to hit all 2D objects under the mouse cursor, when the Mouse0 is pressed:
if(Input.GetMouseButton(0))
{
hits = Physics2D.RaycastNonAlloc(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector3.forward, hit2Ds, 100f, targetLayer);
newHitsVector = Physics2D.RaycastAll(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector3.forward, 100f, targetLayer);
}
Strangely enough, the code above returns different results for the two Physics2D methods: RaycastAll() returns all objects hit (as expected), but RaycastNonAlloc() will never return more than 1 hit (if it hits something, it always returns 1, no matter how many objects are overlapping under the mouse cursor).
There are no colliders at the starting point to interfere and the paramaters on both function calls are identical, as you can see. Am I missing something or is there a bug in Physics2D.RaycastNonAlloc()?
Thank you and Best Regards,
Alex.