- Home /
Reverse situation: get a RaycastHit from instantiated gameObject?
Hi guys,
I have a function which takes a RaycastHit as a parameter. In one of my other script I need to instantiate a gameobject and pass this object to my function as RaycastHit. My problem is that I can not get a RaycastHit from a gameobject. This is totally opposite to get a gameobject from hit.
I would do something like this but it is still a collider, not a RaycastHit:
GameObject go = Instantiate (object, somePosition, Quaternion.identity) as GameObject;
SomeOtherScript.SomeOtherFunction(go.GetComponent<Collider>());
I know Raycasthit is Physics based but how can I pass it as a parameter? Is it even possible?
That analogy just doesn't make any sense. RaycastHit is a struct that contains information about the result of a raycast. Things like the hit point, the hit normal, which collider was hit, ... All this information is generated by the physics system as a result of casting a ray against all geometry in the scene. What does a "gameobject" has to do with the result of a raycast?
A RaycastHit is the result of an action (casting a ray) while a gameobject is just a passive object.
Imagine you're speeding on a freeway. The police stops you and you get a ticket about that incident. The ticket has informations about you, your car, the name or ID of the police officer, where you were speeding and how fast. What you want now is: You just have a car and from that car you want to get all that information the ticket has without even driving. A car is just a car and a GameObject is just a GameObject.
You haven't given us enough information what you actually need this for, so we can't answer this question. You should edit your question and clarify what you actually want to do. $$anonymous$$aybe just tell use what information from the RaycastHit struct you need. If it's just a position / direction, that can be read from a GameObject as that's just static data.