文章目录

  • 前言
  • 一、为啥要弄这个
  • 二、脚本
    • 1.引入库
    • 2.使用步骤
  • 总结

前言

最近开发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(){//获取选中的GameobjectgameobDic = 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.最后点击"给选中物体添加脚本"按钮,就可以查看有没有给选中物体添加脚本了.


总结

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

unity 扩展器添加脚本相关推荐

  1. unity动态添加脚本

    第一种,被调用脚本函数为static类型,调用时直接用 脚本名.函数名() 第二种,GameObject.Find("脚本所在的物体的名字").SendMessage(" ...

  2. 【Unity 题型】脚本开发

    知识涉及:Unity   脚本生命周期 要点 以下关于密封类的说法,正确的是 A. 密封类可以用做基类 B. 密封类可以使抽象类 C. 密封类永远不会有任何派生类 D. 密封类或密封方法可以重写或继承 ...

  3. 【Unity3D】Android Studio 工程中使用 Java 代码调用 Unity 的 C# 脚本 ( Java 中调用 UnityPlayer#UnitySendMessage 方法 )

    文章目录 一. Java 调用 C# 依赖库准备 1.依赖库位置 2.unityLibrary 依赖库位置 二. Java 调用 C# 的 UnityPlayer#UnitySendMessage 方 ...

  4. Unity创建C#脚本与项目的模板路径并修改

    Unity创建C#脚本与项目的模板路径并修改 C#脚本模板 路径 模板文件 项目模板 路径 修改项目模板 C#脚本模板 在项目开发的过程中,我们需要对一个.cs文件添加一些注释(例如:创建者,创建日期 ...

  5. ILRuntime(二)整合Hotfix到Unity中,脚本生成dll文件

    如果开发的时候按之前的一个Hotfix工程,一个Unity工程,开发会很麻烦.因此我们可以把Hotfix部分的代码放入到Unity当中,并增加一个标记,到时候把这些代码整合成一个dll文件即可. 具体 ...

  6. unity3d python脚本_Unity3D 给对象(gameObject)添加脚本代码

    Unity3D支持三种脚本,javascript.C# Script.Boo Script(类Python).我这个人比较二......最初公司这边叫我学C#,我之前不会,所以现学.到了之后才发现,我 ...

  7. xshell添加脚本

    ##### xshell添加脚本 ``` 属性 连接 - 用户身份验证 - 登陆脚本 - 添加 等待:[usmshell]$ 发送:open 212 //212是指188那台机器的ID 再添加一个 等 ...

  8. unity 关闭自己脚本_太可了!这些领域可以把Unity玩的那么好,带你开启新世界...

    projects 作品 本期编辑:刺子 审核:OF君 Unity3D凭借 操作简单.易学. 灵活等优势,风靡全球. 从官网最新公布的数据来看, 其已占世界范围内45%的市场份额, 占据全球首位. 如今 ...

  9. 油猴安装、编写及添加脚本 笔记

    本文在参考深入浅出 Greasemonkey一文后,结合自己实践总结而成,文中大部分内容来源于网上原文,只在实践部分加入自己内容.原文是在Firefox里调试的,我用chrome,所以有些地方不太一样 ...

最新文章

  1. CSS设置动态超链接
  2. 废旧纸箱做机器人图片_网购后的快递纸箱被你扔掉了吗?
  3. SQL-2 查找入职员工时间排名倒数第三的员工所有信息
  4. u-boot.lds文件简介
  5. python调用接口测试_Python接口测试实战2 - 使用Python发送请求
  6. python 数据结构 基础
  7. mysqld_exporter报错Error 1146: Table 'my2.status' doesn't exist
  8. 通过脚本下派WsusAgent3.0.exe
  9. POJ3461 【KMP(粗糙模板)】
  10. 关于iOS 热更新(热修复)你必须知道的一种方法- JSPatch
  11. abort has been called翻译_小分享:一款优秀的你还不知道的免费翻译工具推荐给大家...
  12. 深度学习目标检测之SSD网络(超级详细)
  13. 海康SDK语音转发实现(ubuntu)
  14. wxpython多个面板_wxpython笔记:Wxpython pannel切换
  15. Linux解决txt文件乱码问题
  16. APP登录 技术点与流程全解
  17. Luogu P2751 [USACO4.2]工序安排Job Processing
  18. word出现错误报告的解决办法
  19. 程序员做外包能转正吗?外包员工能变正式员工吗?
  20. 微信小程序报错{errMsg:hideLoading:fail:toast can't be found}

热门文章

  1. html微课制作软件,炫页网.多彩炫页工具-微课大赛指定HTML5课程制作工具
  2. 最全华为ensp路由器启动失败错误代码40怎么办?
  3. Android12 apk安装失败 安装包异常 安装包大小显示1k
  4. 老子哲学与太极拳技击
  5. 【GEE笔记5】数据筛选Filter
  6. android应用开发-从设计到实现 4-8 天气预报的布局
  7. 【python数据分析】对淘商品类母婴购物数据进行分析(含完整源码)
  8. linux下code-server离线远程web浏览器调试C++代码
  9. Rust语言正在兴起,Java、Python、C的末日来临?
  10. iphone内存管理(一)