Обмен технологиями

untiy Добавьте пользовательскую кнопку в строку меню. Нажмите кнопку, чтобы открыть всплывающее окно Unity и добавить в него атрибуты.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

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

public class AutoGenerateWindow : EditorWindow //这是定义一个窗口
{
    public string subjecttName = "科目名字";//科目的名字
    public GameObject modelAsset;//模型
    AutoGenerateWindow()
    {
        this.titleContent = new GUIContent("自动生成");
    }
    private void OnEnable()
    {
    	//控制弹出窗口的高度
        this.maxSize = new Vector2(500, 200);
        this.minSize = new Vector2(500, 200);
    }

    [MenuItem("自动生成/打开生成面板")] //这是在添加菜单栏的按钮
    private static void OnOpenGeneateWindow()
    {
        AutoGenerateWindow win = EditorWindow.GetWindow<AutoGenerateWindow>();
        win.Show();//打开这个窗口
    }
    private void OnGUI()
    {
        //添加属性
        GUILayout.Space(10);//每个属性之间上下的空白
        subjecttName = EditorGUILayout.TextField("科目名字", subjecttName);
        modelAsset = (GameObject)EditorGUILayout.ObjectField("模型", modelAsset, typeof(GameObject), false); //最后的bool,true选择scene里的物体,false资源选择器

        //添加按钮
        if (GUILayout.Button("生成"))
        {
            //点击按钮的具体逻辑
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

Открывшееся окно выглядит следующим образом
Вставьте сюда описание изображения