I am working on an application that contains a main menu and several different AR scenes, all with an NGUI-based user interface overlay. The main menu is set to portrait orientation, but the AR scenes should be in landscape orientation. Thus, the device orientation needs to be changed programmatically depending on which scene is loaded.
Due to a bug involving Unity and NGUI, changing the device orientation manually causes UI elements to become unresponsive. I found that the solution for this was to upgrade Unity to a version higher than v4.5.1 (http://www.tasharen.com/forum/index.php?topic=10156.0)
This would normally be no big deal, except for the fact that I just had to downgrade my Unity version from v4.6.1 to v4.5.1 in order to get past a runtime error when building the app to an iOS device. (https://developer.vuforia.com/forum/ios/vuforia-unity-samples-fail-xcode-511)
The only potential solution I can think of would be to use the PostProcessBuildPlayer to build from the new version of Unity but flag the project as an older version, but I'm a little unclear on how that works. Before I dive into it I just wanted to make sure I wasn't missing anything.