注意修改Game视图,是指修改Unity编辑器的一个引擎实现的编辑器窗口,修改UnityEngine.Screen是无法做到修改Game视图的分辨率的。
目前Unity官方并未提供出关于修改GameView的API, 不过我们可以通过反射的方式实现获取到Game视图的编辑器对象
一。利用 UnityEditor.EditorWindow.mouseOverWindow 获取Game视图的类名
var window= UnityEditor.EditorWindow.mouseOverWindow;
Debu.Log(window.GetType().Name)
二。 利用反射获取到类的内部字段和方法
Assembly assembly = typeof(UnityEditor.EditorWindow).Assembly;
Type type = assembly.GetType("UnityEditor.GameView");
var gameView= UnityEditor.EditorWindow.GetWindow(type);
PropertyInfo targetProperty = type.GetProperty("selectedSizeIndex");
if(landscapeLeft)
targetProperty.SetValue(gameView, 6);
else
targetProperty.SetValue(gameView, 5);