14.编辑器窗口设计

14.上传指定资源服务器-编辑器窗口设计


14.1 知识点

编辑器窗口设计需求分析

  • 将之前的编辑器功能整合到一个窗口中
  • 有平台选择页签
  • 并且在工具窗口中添加一个IP地址输入框

创建AB包工具窗口,继承编辑器窗口

// AB包工具窗口 继承编辑器窗口
public class ABTools : EditorWindow
{
}

定义打开工具窗口方法

[MenuItem("AB包工具/打开工具窗口")]
private static void OpenWindow()
{
    //获取一个ABTools 编辑器窗口对象 因为逻辑写在ABTools这个类 所以传入ABTools的类型 传入窗口位置和大小 得到ABTools
    ABTools window = EditorWindow.GetWindowWithRect(typeof(ABTools), new Rect(0, 0, 350, 220)) as ABTools;
    window.Show();
}

添加绘制逻辑,包括平台选择,IP地址输入框和三个功能按钮

private int nowSelIndex = 0;
private string[] targetStrings = new string[] { "PC", "IOS", "Android" };

//资源服务器默认IP地址
private string serverIP = "ftp://127.0.0.1";

private void OnGUI()
{
    GUI.Label(new Rect(10, 10, 150, 15), "平台选择");

    //页签显示 是从数组中取出字符串内容来显示 所以 需要改变当前选中的索引
    nowSelIndex = GUI.Toolbar(new Rect(10, 30, 250, 20), nowSelIndex, targetStrings);

    //资源服务器IP地址设置
    GUI.Label(new Rect(10, 60, 150, 15), "资源服务器地址");
    serverIP = GUI.TextField(new Rect(10, 80, 150, 20), serverIP);

    //创建对比文件 按钮
    if(GUI.Button(new Rect(10, 110, 100, 40), "创建对比文件"))
    {

    }

    //保存默认资源到StreamingAssets 按钮
    if (GUI.Button(new Rect(115, 110, 225, 40), "保存默认资源到StreamingAssets"))
    {

    }

    //上传AB包和对比文件 按钮
    if (GUI.Button(new Rect(10, 160, 330, 40), "上传AB包和对比文件"))
    {

    }
}

运行结果


14.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;


// AB包工具窗口 继承编辑器窗口
public class ABTools : EditorWindow
{
    private int nowSelIndex = 0;
    private string[] targetStrings = new string[] { "PC", "IOS", "Android" };

    //资源服务器默认IP地址
    private string serverIP = "ftp://127.0.0.1";

    [MenuItem("AB包工具/打开工具窗口")]
    private static void OpenWindow()
    {
        //获取一个ABTools 编辑器窗口对象 因为逻辑写在ABTools这个类 所以传入ABTools的类型 传入窗口位置和大小 得到ABTools
        ABTools window = EditorWindow.GetWindowWithRect(typeof(ABTools), new Rect(0, 0, 350, 220)) as ABTools;
        window.Show();
    }

    private void OnGUI()
    {
        GUI.Label(new Rect(10, 10, 150, 15), "平台选择");

        //页签显示 是从数组中取出字符串内容来显示 所以 需要改变当前选中的索引
        nowSelIndex = GUI.Toolbar(new Rect(10, 30, 250, 20), nowSelIndex, targetStrings);

        //资源服务器IP地址设置
        GUI.Label(new Rect(10, 60, 150, 15), "资源服务器地址");
        serverIP = GUI.TextField(new Rect(10, 80, 150, 20), serverIP);

        //创建对比文件 按钮
        if(GUI.Button(new Rect(10, 110, 100, 40), "创建对比文件"))
        {

        }

        //保存默认资源到StreamingAssets 按钮
        if (GUI.Button(new Rect(115, 110, 225, 40), "保存默认资源到StreamingAssets"))
        {

        }

        //上传AB包和对比文件 按钮
        if (GUI.Button(new Rect(10, 160, 330, 40), "上传AB包和对比文件"))
        {

        }
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏