namespace NRKernal { using UnityEngine; /// A nr phone screen. public class NRPhoneScreen { /// Width of the screen. private static float m_ScreenWidth = 0; /// Height of the screen. private static float m_ScreenHeight = 0; /// The default width. public const float DefaultWidth = 1080; /// The default height. public const float DefaultHeight = 2340; /// Gets or sets the resolution. /// The resolution. public static Vector2 Resolution { get { if (m_ScreenWidth < float.Epsilon || m_ScreenHeight < float.Epsilon) { #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass j = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = j.GetStatic("currentActivity"); AndroidJavaObject displayManager = currentActivity.Call("getSystemService", new AndroidJavaObject("java.lang.String", "display")); AndroidJavaObject display = displayManager.Call("getDisplay", 0); AndroidJavaObject outSize = new AndroidJavaObject("android.graphics.Point"); display.Call("getRealSize", outSize); m_ScreenWidth = outSize.Get("x"); m_ScreenHeight = outSize.Get("y"); #else m_ScreenWidth = DefaultWidth; m_ScreenHeight = DefaultHeight; #endif NRDebugger.Debug(string.Format("[NRPhoneScreen] width:{0} height:{1}", m_ScreenWidth, m_ScreenHeight)); } return new Vector2(m_ScreenWidth, m_ScreenHeight); } set { m_ScreenWidth = value.x; m_ScreenHeight = value.y; } } } }