通过脚本添加视口

通过反射获取Unity程序集,编写Editor视窗。没有太多实际意义的小练习,扩展一下可以做成一个方便的编辑器配置工具。

在这里插入图片描述

using System;
using System.Reflection;
using UnityEditor;

public class Viewport : Editor
{
    [MenuItem("Assets/Add New Viewprot")]
    public static void Add()
    {
        Type gameViewSize = typeof(Editor).Assembly.GetType("UnityEditor.GameViewSize");
        Type gameViewSizes = typeof(Editor).Assembly.GetType("UnityEditor.GameViewSizes");
        Type gameViewSizeType = typeof(Editor).Assembly.GetType("UnityEditor.GameViewSizeType");
        MethodInfo getGroup = gameViewSizes.GetMethod("GetGroup");
        Type scriptableSingleton = typeof(ScriptableSingleton<>).MakeGenericType(gameViewSizes);
        PropertyInfo scriptableSingletonInstance = scriptableSingleton.GetProperty("instance");
        object gameViewSizesInstance = scriptableSingletonInstance.GetValue(null, null);
        object group = getGroup.Invoke(gameViewSizesInstance, new object[] { 0 /* = Standalone */});
        MethodInfo addCustomSize = getGroup.ReturnType.GetMethod("AddCustomSize");
        ConstructorInfo constructor = gameViewSize.GetConstructor(new Type[] { gameViewSizeType, typeof(int), typeof(int), typeof(string) });

        // 设置 Type, Width, Height, Label
        object newSize = constructor.Invoke(new object[] { 1, 1024, 1024, "MyView" });
        addCustomSize.Invoke(group, new object[] { newSize });
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值