[Unity3D]通过反射方式获取Game View当前选择的分辨率

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Unity3D]通过反射方式获取Game View当前选择的分辨率相关的知识,希望对你有一定的参考价值。

System.Type T = System.Type.GetType("UnityEditor.GameView,UnityEditor");
System.Reflection.MethodInfo GetMainGameView = T.GetMethod("GetMainGameView", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
System.Object Res = GetMainGameView.Invoke(null, null);
var gameView = (UnityEditor.EditorWindow)Res;
var prop = gameView.GetType().GetProperty("currentGameViewSize", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
var gvsize = prop.GetValue(gameView, new object[0] { });
var gvSizeType = gvsize.GetType();

var debug_h = (int)gvSizeType.GetProperty("height", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance).GetValue(gvsize, new object[0] { });
var debug_w = (int)gvSizeType.GetProperty("width", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance).GetValue(gvsize, new object[0] { });

以上代码可获取Game View中当前选择的分辨率,而非Using resolution。取到的值可用于动态设置NGUI组件(如UIScrollView)的参数等。

以上是关于[Unity3D]通过反射方式获取Game View当前选择的分辨率的主要内容,如果未能解决你的问题,请参考以下文章

反射机制获取Class对象的三种方式

unity3d 给游戏添加音源 Unity3d adds a sound source to the game

反射:获取属性值的不同方式

Unity3D_(游戏)Game卡牌02_主菜单界面

Java反射

反射机制获取Class对象的三种方式: