Hello,
Let’s say I have a rectangular box and what I want to do is shift the mesh and move the transform, so that the transform ends up at one side of the rectangular box.
Like so:
I have tried many things, people suggest you have to use Transform.InverseTransformPoint() or TransformPoint(), or using a 4x4 matrix, but I can’t figure it out, the box ends up offset to the wrong position.
Here the code:
private Mesh RecenterMesh()
{
Vector3 offset = TargetTransform.transform.position - transform.position;
transform.position = TargetTransform.transform.position;
Mesh mesh = meshFilter.sharedMesh;
Vector3[] vertsOffset = new Vector3[mesh.vertices.Length];
for (int i = 0; i < mesh.vertices.Length; i++)
{
vertsOffset[i] = mesh.vertices[i] - offset;
}
mesh.vertices = vertsOffset;
meshColl.sharedMesh = meshFilter.sharedMesh;
mesh.RecalculateBounds();
return mesh;
}
Any idea where to use InverseTransformPoint() or so?
Thanks for your help.
