I found this with some more searching… I’m not sure if this would work. (I will have to try when I get home)
I am confused as to how an angle of rotation can be calculated by looking at the normals of an object. Because I am thinking a point of reference must be used to distinguish from one degree to another degree of rotation. For calculating the angle of a normal, does unity use the world space as a reference? If not, how does unity determine the angle of rotation for surface normals?
Short answer: Use Quaternion.SetFromToRotation() or Quaternion.FromToRotation() to compute a rotation that will rotate the cube’s current up vector onto the surface normal, and then apply it to the Transform.rotation field to align the cube.