Hello
I need to do a raycast into a voxel chunk.
I’ve found a method for raycasting (found at http://www.xnawiki.com/index.php?title=Voxel_traversal ) but it takes ray information in chunks coordinates.
My problem is that my chunks can be translated/rotated anywhere anytime in the world (unity’s transform coordinates)
What I need so is to translate world coordinates into chunks coordinates by using chunks transform rotation/position so that I can apply this algorithm to find chunks blocks (so, in chunks coordinates) that are traversed by the ray.
I’ve tried something like this:
public Vector3 RealToChunk(Vector3 real){
Vector3 retVal = new Vector3();
retVal = transform.InverseTransformPoint(real);
retVal.x = (int)(chunkSize.x / 2 + retVal.x);
retVal.y = (int)(chunkSize.y / 2 + retVal.y);
retVal.z = (int)(chunkSize.z / 2 + retVal.z);
return retVal;
}
but I can’t get it working correctly…
Any ideas?
Thanks all!