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属性修改的是下图的尺寸编号

相关推荐
长栎几秒前
面试官说你的单例线程不安全,你真能现场修好?
java
码云骑士2 分钟前
【Java基础】JDK安装常见问题教辅-从踩坑到排雷
java·开发语言
Sunia5 分钟前
《AgentX 专栏》09-MCP协议双向打通:让AgentX既能被Claude调用又能调度全球工具生态
java·架构
wyu729619 分钟前
SpringBoot八股的一些概念笔记
java·面试
一只积极向上的小咸鱼14 分钟前
TOML、JSON、YAML、INI 配置文件格式总结
java·服务器·json
莫逸风15 分钟前
【AgentScope】4.会话(Session)详解
java·llm·agent·agentscope
吴阿福|一人公司24 分钟前
类变量和实例变量的命名规范有哪些具体的例子?
java·开发语言
eddietao27 分钟前
什么是 fail-fast?什么是 fail-safe?
java·面试
程序员小羊!27 分钟前
05 JAVA面向对象
java·开发语言
MrJson-架构师29 分钟前
AgentScope Java 2.0:打造分布式、企业级智能体底座
java·开发语言·分布式