[Unity编辑器]编辑器模式下修改Game视图分辨率

文章介绍了如何在Unity中通过反射技术来修改Game视图的分辨率,因为官方未提供直接的API。首先,利用UnityEditor.EditorWindow.mouseOverWindow获取Game视图的类名,然后通过反射访问UnityEditor.GameView类型,进一步设置Game视图的selectedSizeIndex属性来改变分辨率。
摘要由CSDN通过智能技术生成
         注意修改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);
            //可以反射出其他字段和方法,看看是否有可以修改Game视图字段或者方法   
            PropertyInfo targetProperty = type.GetProperty("selectedSizeIndex");
            if(landscapeLeft)
               targetProperty.SetValue(gameView, 6);
            else
               targetProperty.SetValue(gameView, 5);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值