- Home /
The question is answered, right answer was accepted
Capturing a point
Hi,
What is the best way to test if one object is hovering directly above another for x number of frames?
Note:
I also need to send info from the object on top to the one below.
there will be multiple points to capture
Thanks in advance for any help!
Answer by Myth · Apr 15, 2011 at 02:05 AM
Due to there being many objects trying to capture many objects, Vector3.Distance won't work very efficiently,
Collision is too proving costly and erratic,
Location (array) is too confusing to use on multiple levels
So...
this leaves raycast - which is suddenly not working either.
Answer by Extrakun · Apr 10, 2011 at 03:29 PM
Use Vector3.Distance to determine if they are close enough. Or you can attach a sphere to the target object, set it as a trigger and switch off its MeshRenderer. Use that sphere's OnTriggerCollide to detect the condition for capture.
To check if an object is on top of another, I will take the capturing object and use Physics.RayCast to cast a ray down and see if it collides with the point to capture. You can also use the output of RayCast to check if the two objects are close enough.
It depends on which you prefer. If you rather set the range of capture by tweaking the stuff inside the editor, go with the first choice. If you rather do it inside code, go for the second. What is 'best' for me may not be 'best' for someone else.