Voxel raycasting in world space

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!

If you have the same kind of coordinate system between your world coordinates and your chunk coordinates, this should work.

public Vector3 RealToChunk(Vector3 real){
                int x = (int)Math.Floor(real.x / chunkSize.x);
                int y = (int)Math.Floor(real.y / chunkSize.y);
                int z = (int)Math.Floor(real.z / chunkSize.z);

                return new Vector3(x, y, z);
        }