unity 扩展器添加脚本


前言

最近开发Rhinox Mr程序发现需要大量使用到SDk的脚本,也是懒不想自己写,所以写一个编辑器扩展脚本,可以更简单在大量使用SDK脚本,重复没营养的同一个步骤的工具。


一、为啥要弄这个

因为懒。

二、脚本

1.引入库

代码如下:

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

public class EditorDemo : EditorWindow
{
    [MenuItem("MyTools/EditorTest")]
    public static void EditorTest()
    {
        EditorDemo demo = (EditorDemo)EditorWindow.GetWindow(typeof(EditorDemo), false, "给选中物体添加脚本");
        demo.Show();
    }
    /// <summary>
    /// 列表来装选中的monscript脚本
    /// </summary>
    private List<MonoScript> scriptList = new List<MonoScript>() { null };
    /// <summary>
    /// 添加脚本个数
    /// </summary>
    private int num = 1;
    /// <summary>
    /// 在Hierarchy选中的gamoebject
    /// </summary>
    private GameObject[] gameobDic;
    private void OnGUI()
    {
        //获取选中的Gameobject
        gameobDic = Selection.gameObjects;
        num = EditorGUILayout.IntField("脚本个数", num);
        AddMonsScriptList();
        GUILayout.Space(30);
        if (GUILayout.Button("给选中物体添加脚本"))
            SetMonsScriptList();
    }

    void AddMonsScriptList()
    {
        int scriptListCount = scriptList.Count - 1;
        for (int i = 0; i < num; i++)
        {
            if (scriptListCount < i)
            {
                //给脚本添加一个空值,为了界面好看,也为了下面缓存脚本
                scriptList.Add(null);
            }
            //选中的脚本添加到脚本列表里面
            scriptList[i] = (MonoScript)EditorGUILayout.ObjectField(scriptList[i], typeof(MonoScript), true);
        }
    }
    void SetMonsScriptList()
    {
        //for循环选中物体
        for (int i = 0; i < gameobDic.Length; i++)
        {
            //for循环缓存脚本,循环数按填的脚本数.防止脚本列表有界面看不到的缓存数据(猜测)
            for (int j = 0; j < num; j++)
            {
                //判断MonoScript是否为空
                if (scriptList[j] == null)
                    continue;
                //防止重复添加相同脚本
                if (gameobDic[i].GetComponent(scriptList[j].name) == null)
                    gameobDic[i].AddComponent(scriptList[j].GetClass());
            }
        }
    }
}

2.使用步骤

因为要进行编辑器扩展窗口,所以要继承EditorWindow类。
1.把脚本放到Editor文件加下
2.在unity上方找到My Tools按钮,下的EditorTest按钮,打开脚本布局界面在这里插入图片描述
3.在界面上可以看到"脚本个数",通过修改这个参数,来增加要添加的脚本,通过下方窗口旁边的小圆,来选择要添加的脚本.
4.最后点击"给选中物体添加脚本"按钮,就可以查看有没有给选中物体添加脚本了.


总结

有啥写的不好的,后期再改,欢迎指正.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值