If it should only hit with left,up,right,down use Raycasts.Your code will look lile that public float[] CheckCollisions() { Raycast hit; float[] collisions = new float[4]; if (Physics.Raycast(transform.position, transform.Vector3.Up, 100.0f, out hit)) collsisions[0] = hit.transform.position - transform.position; else collsisions[0] = Float.NaN; //other directions return collissions; } This isn't the most beautiful way, make a Vector3 array with all directions you wanna check and then iterate through (and check current Vector for hit) Sorry for mistakes, wrote this with cellphone.