- Home /
geometry how to find ray local hit point?
I'm sorry but I just can't figure out but I've made it long way, ... how else to find local point with vector 3 instead of transform, ...
Transform parent = OuterProjectile.transform.parent;
OuterProjectile.transform.position = HitPoint;
OuterProjectile.transform.parent = transform;
BodyVulnerability = OuterProjectile.transform.localPosition.x;
OuterProjectile.transform.parent = parent;
this works exactly the way I want and all that is I'm searching for that:
BodyVulnerability = OuterProjectile.transform.localPosition.x;
information, ...
is there any else way to figure it out except with parenting, ...
sorry I'm really bad at geometry
EDIT: sorry did world position instead of local repairing the Q now, ...
I'm confused about what you are doing here. 'transform.position' is a world space position. It is not the local position shown in the inspector, so changing the parent does not change this position. Put a '`Debug.Log(OuterProjectile.transform.position.x);`' above and below your parenting code. You will see the value is the same. And given what you have done, the value should be the same as HitPoint.x
.
If you are looking for the local position (which this code does not do), you can use Transform.InverseTransformPoint().
Answer by jonnyhopper · Oct 24, 2013 at 08:24 PM
Hi!
Don't worry, this stuff can be confusing. I'm presuming you want the result local to whatever GameObject you're currently "in" - i.e. whatever holds transform. I think you should be able to do something like:
Vector3 local_point = transform.worldToLocalMatrix.MultiplyPoint3x4( Hitpoint );
Hope that helps J.
can you explain the code a bit please?
and you are presu$$anonymous$$g me correctly :)
sorry, typo on my code. it should be $$anonymous$$ultiplyPoint3x4
both codes work fine :) thanks to both but kinda I like more the not matrix, ...
BodyVulnerability = transform.InverseTransformPoint( HitPoint ).x;
BodyVulnerability = transform.worldToLocal$$anonymous$$atrix.$$anonymous$$ultiplyPoint3x4( HitPoint ).x;
may I ask what's the difference? they both work as I wanted, ...
You're right - InverseTransformPoint is a helper function to do exactly the same thing. Use that!
It's for convenience. It was added in Unity to mean you don't need to type worldToLocal$$anonymous$$atrix.$$anonymous$$ultiplyPoint3x4 etc - but its functionality is the same.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
How to check if point is inside collider? 1 Answer