public class CameraRotation : MonoBehaviour {
private Camera cam;
private UIRoot mRoot;
private bool isPortrait;
public delegate void OnRotationChange(bool isPortrait, int pixelWidth, int pixelHeight);
public OnRotationChange OnUpdate;
void Start () {
cam = GetComponent<Camera> ();
mRoot = NGUITools.FindInParents<UIRoot>(gameObject);
isPortrait = (cam.pixelWidth > cam.pixelHeight); // make false value at first so first update runs event
}
void Update () {
bool n_isPortrait = (cam.pixelWidth < cam.pixelHeight);
if (n_isPortrait != isPortrait) {
isPortrait = n_isPortrait;
// update
float ratio = (float)mRoot.activeHeight / Screen.height;
int width = (int)Mathf.Ceil(Screen.width * ratio);
int height = (int)Mathf.Ceil(Screen.height * ratio);
if(OnUpdate!=null)
OnUpdate(isPortrait,width,height);
}
}
}