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;
}
}
}
}