Unity Runtime控制编辑器的一些操作

运行时修改Game窗口尺寸

cs 复制代码
//设置竖屏
public void ChangePortrait()
{
    Assembly assembly = typeof(UnityEditor.EditorWindow).Assembly;
    Type type = assembly.GetType("UnityEditor.GameView");
    var gameView= UnityEditor.EditorWindow.GetWindow(type);
    //可以反射出其他字段和方法,看看是否有可以修改Game视图字段或者方法   
    PropertyInfo targetProperty = type.GetProperty("selectedSizeIndex");
    targetProperty.SetValue(gameView,18);
    UIModule.Instance.UIRoot.GetComponent<CanvasScaler>().referenceResolution = new Vector2(768, 1720);
}

//设置横屏
public void ChangeLandscape()
{
    Assembly assembly = typeof(UnityEditor.EditorWindow).Assembly;
    Type type = assembly.GetType("UnityEditor.GameView");
    var gameView= UnityEditor.EditorWindow.GetWindow(type);
    //可以反射出其他字段和方法,看看是否有可以修改Game视图字段或者方法   
    PropertyInfo targetProperty = type.GetProperty("selectedSizeIndex");
    targetProperty.SetValue(gameView, 19);
    UIModule.Instance.UIRoot.GetComponent<CanvasScaler>().referenceResolution = new Vector2(1920, 1080);
}

请注意selectedSizeIndex属性修改的是下图的尺寸编号

相关推荐
三产1 分钟前
Hermes 教程 03:Skills 系统
android·java·数据库
starsky762382 分钟前
spring boot——前后端分离
java·spring boot·后端
jiayong232 分钟前
IDEA 中进行分支双向同步操作指南
java·ide·intellij-idea
AI玫瑰助手3 分钟前
Python流程控制:for循环遍历字符串列表字典
android·java·python
java修仙传3 分钟前
Java 实习日志:一次报价规则适配、列表规则精简与导入校验修复
java·实习
萨小耶4 分钟前
[Java学习日记07】聊聊接口和抽象类
java·开发语言·学习
折哥的程序人生 · 物流技术专研9 分钟前
《Java面试85题图解版(三)》上篇:高阶架构设计篇
java·开发语言·后端·面试·职场和发展
吴声子夜歌16 分钟前
Java——ArrayDeque
java·arraydeque
郝学胜-神的一滴17 分钟前
中级OpenGL教程 005:为球体&平面注入法线灵魂
c++·unity·图形渲染·three.js·opengl·unreal
NagatoYukee22 分钟前
Spring/SpringMVC/SprongBoot知识复习
java·数据库·spring