浏览代码

display matrix

/siyaoH-1.17-PlatformMessage
siyao 4 年前
当前提交
b20deaaa
共有 3 个文件被更改,包括 47 次插入35 次删除
  1. 2
      com.unity.uiwidgets/Runtime/engine2/AndroidPlatformUtil.cs
  2. 36
      com.unity.uiwidgets/Runtime/engine2/UIWidgetsPanel.cs
  3. 44
      com.unity.uiwidgets/Runtime/engine2/DisplayMatrix.cs

2
com.unity.uiwidgets/Runtime/engine2/AndroidPlatformUtil.cs


FileInfo fileInfo = new System.IO.FileInfo(dir + file);
fileInfo.Directory.Create();
File.WriteAllBytes(fileInfo.FullName, data);
throw new Exception("not loaded");
}
}

36
com.unity.uiwidgets/Runtime/engine2/UIWidgetsPanel.cs


static bool _ShowDebugLog;
public float devicePixelRatioOverride {
get {
if (_devicePixelRatioOverride > 0) {
return _devicePixelRatioOverride;
}
#if UNITY_ANDROID
_devicePixelRatioOverride = AndroidDevicePixelRatio();
#endif
return _devicePixelRatioOverride;
}
}
#if UNITY_ANDROID
static float AndroidDevicePixelRatio() {
using (
AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")
) {
using (
AndroidJavaObject metricsInstance = new AndroidJavaObject("android.util.DisplayMetrics"),
activityInstance = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"),
windowManagerInstance = activityInstance.Call<AndroidJavaObject>("getWindowManager"),
displayInstance = windowManagerInstance.Call<AndroidJavaObject>("getDefaultDisplay")
) {
displayInstance.Call("getMetrics", metricsInstance);
return metricsInstance.Get<float>("density");
}
}
}
#endif
DisplayMatrix _displayMatrix = new DisplayMatrix();
float _devicePixelRatioOverride;

float _currentDevicePixelRatio {
get {
#if !UNITY_EDITOR && UNITY_ANDROID_API
return devicePixelRatioOverride;
#if !UNITY_EDITOR
return _displayMatrix.DevicePixelRatioByDefault;
#endif
var currentDpi = Screen.dpi;
if (currentDpi == 0) {

44
com.unity.uiwidgets/Runtime/engine2/DisplayMatrix.cs


using UnityEngine;
namespace Unity.UIWidgets.engine2 {
public class DisplayMatrix {
float _devicePixelRatioByDefault;
public float DevicePixelRatioByDefault {
get {
if (_devicePixelRatioByDefault > 0) {
return _devicePixelRatioByDefault;
}
#if UNITY_ANDROID
_devicePixelRatioByDefault = AndroidDevicePixelRatio();
#endif
if (_devicePixelRatioByDefault <= 0) {
_devicePixelRatioByDefault = 1;
}
return _devicePixelRatioByDefault;
}
}
#if UNITY_ANDROID
static float AndroidDevicePixelRatio() {
using (
AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")
) {
using (
AndroidJavaObject metricsInstance = new AndroidJavaObject("android.util.DisplayMetrics"),
activityInstance = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"),
windowManagerInstance = activityInstance.Call<AndroidJavaObject>("getWindowManager"),
displayInstance = windowManagerInstance.Call<AndroidJavaObject>("getDefaultDisplay")
) {
displayInstance.Call("getMetrics", metricsInstance);
return metricsInstance.Get<float>("density");
}
}
}
#endif
}
}
正在加载...
取消
保存