UGUI 快捷键创建UGUI组件

使用NGUI的时候还有xxx快捷键创建, spirte,label,button等等. 在UGUI里面的时候好像是没有快捷键的. 不知道以后多久才能有这个功能. 在家里闲无聊的时候写了一个脚本, 可以方便的创建UGUI组件(Button,Image,Text,InputFile等等)
快捷键列表如下:
| Text | Shift+Alt+L |
| Button | Shift+Alt+B |
| Image | Shift+Alt+S |
| InputField | Shift+Alt+I |
代码部分:
using UnityEngine;
using System.Collections;
using UnityEditor;
using UnityEngine.UI; /// <summary>
/// 根据快捷键创建UGUI控件
/// 快捷键符号% Ctrl # Shift & Alt
/// </summary>
public class UGUIShortcutKey : Editor
{ public const int UIlayer = 5; //UI [MenuItem("Plateface/CreateUGUI Text #&L")]
public static void CreateText()
{
if (Selection.gameObjects.Length > 0)
{
GameObject obj = Selection.gameObjects[0];
GameObject text = new GameObject();
RectTransform textRect = text.AddComponent<RectTransform>();
Text textTx = text.AddComponent<Text>();
text.transform.SetParent(obj.transform);
text.name = "Text";
text.layer = UIlayer;
textTx.text = "plateface"; textRect.localScale = new Vector3(1, 1, 1);
textRect.anchoredPosition = Vector2.zero;
textRect.anchoredPosition3D = Vector3.zero; RectTransformZero(textRect);
} } [MenuItem("Plateface/CreateUGUI Button #&B")]
public static void CreateButton()
{
if (Selection.gameObjects.Length > 0)
{
Debug.Log("创建按钮");
GameObject obj = Selection.gameObjects[0];
if (obj == null) return; GameObject button = new GameObject();
GameObject buttonTx = new GameObject(); RectTransform buttonRect = button.AddComponent<RectTransform>();
RectTransform buttonTxRect = buttonTx.AddComponent<RectTransform>(); button.AddComponent<Image>();
buttonTx.AddComponent<Text>(); button.transform.SetParent(obj.transform);
buttonTx.transform.SetParent(button.transform);
button.name = "Button";
buttonTx.name = "Text"; button.layer = UIlayer;
buttonTx.layer = UIlayer; RectTransformZero(buttonRect);
RectTransformZero(buttonTxRect); }
} [MenuItem("Plateface/CreateUGUI Image #&S")]
public static void CreateImage()
{
if (Selection.gameObjects.Length > 0)
{
Debug.Log("创建UGUI图片");
GameObject obj = Selection.gameObjects[0];
RectTransform selectionObjRect = Selection.gameObjects[0].GetComponent<RectTransform>(); GameObject image = new GameObject();
RectTransform imageRect = image.AddComponent<RectTransform>();
image.AddComponent<Image>();
image.transform.SetParent(obj.transform);
image.name = "Image";
image.layer = 5; RectTransformZero(imageRect);
} } [MenuItem("Plateface/CreateUGUI InputField #&I")]
public static void CreateInputField()
{
//创建UGUI标签
GameObject obj = Selection.gameObjects[0]; GameObject inputField = new GameObject();
RectTransform rectTransform = inputField.AddComponent<RectTransform>();
Image image = inputField.AddComponent<Image>();
image.sprite = Resources.Load<Sprite>("UnityPlugins/UGUIShortcutKeyTexture/background1");
inputField.AddComponent<InputField>();
rectTransform.localScale = new Vector3(1, 1, 1);
inputField.layer = UIlayer; inputField.transform.SetParent(obj.transform);
inputField.name = "InputField"; GameObject placeholder = new GameObject();
Text placeholderTx = placeholder.AddComponent<Text>();
placeholder.transform.SetParent(inputField.transform);
placeholder.name = "Placeholder";
placeholder.layer = UIlayer;
placeholderTx.color = Color.black; GameObject text = new GameObject();
Text textTx = text.AddComponent<Text>();
text.transform.SetParent(inputField.transform);
text.name = "Text";
text.layer = UIlayer; textTx.color = Color.black; RectTransformZero(rectTransform); } public static void RectTransformZero(RectTransform rectTransform)
{
rectTransform.localScale = new Vector3(1, 1, 1);
rectTransform.anchoredPosition = Vector2.zero;
rectTransform.anchoredPosition3D = Vector3.zero;
}
}
插件下载地址:http://yunpan.cn/cHYb3wR7fqnUU 访问密码 a91c
UGUI 快捷键创建UGUI组件的更多相关文章
- Unity进阶技巧 - 动态创建UGUI
前言 项目中有功能需要在代码中动态创建UGUI对象,但是在网上搜索了很久都没有找到类似的教程,最后终于在官方文档中找到了方法,趁着记忆犹新,写下动态创建UGUI的方法,供需要的朋友参考 你将学到什么? ...
- Unity添加自定义快捷键——UGUI快捷键
在Editor下监听按键有以下几种方式: 自定义菜单栏功能: using UnityEngine; using UnityEditor; public static class MyMenuComma ...
- HTML5 UI框架Kendo UI Web教程:创建自定义组件(三)
Kendo UI Web包 含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等.在前面的2篇文章<HTML5 Web app开发工具Ke ...
- HTML5 UI框架Kendo UI Web中如何创建自定义组件(二)
在前面的文章<HTML5 UI框架Kendo UI Web自定义组件(一)>中,对在Kendo UI Web中如何创建自定义组件作出了一些基础讲解,下面将继续前面的内容. 使用一个数据源 ...
- 动态创建angular组件实现popup弹窗
承接上文,本文将从一个基本的angular启动项目开始搭建一个具有基本功能.较通用.低耦合.可扩展的popup弹窗(脸红),主要分为以下几步: 基本项目结构搭建 弹窗服务 弹窗的引用对象 准备作为模板 ...
- vue通过extend动态创建全局组件(插件)学习小记
测试环境:nodejs+webpack,例子是看文章的,注释为自己的理解 创建一个toast.vue文件: <template> <div class="wrap" ...
- C#创建COM组件
本文详细阐述如何用C#创建COM组件,并能用VC6.0等调用. 附:本文适用任何VS系列工具. 在用C#创建COM组件时,一定要记住以下几点: 1.所要导出的类必须为公有: 2.所有属性.方法也必须为 ...
- VS2010 C++ 创建COM组件
1.项目中要使用到com组件,于是了解了一下com,并根据<C#高级编程>中关于com的介绍用vs创建了一下com,用于实验.以下均根据书中的demo做一遍,熟悉一下而已. 2.创建CoM ...
- C#创建COM组件供VB,PB,Delphi调用
1 COM组件概述 COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术.在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成 ...
随机推荐
- js基础例子dom+原型+oop基础知识记录01
//oo:概念是计算机中对于现实世界的理解和抽象的方法 //由计算机利用编程技术发展到现在的产物 //面向对象几要素 //对象:由属性和方法组成的集合 //属性:保存数据,存储在对象内存空间中的唯一的 ...
- hcharts
折线图 http://www.hcharts.cn/demo/index.php?p=10 饼状图 http://higrid.net/docs/highcharts_cn/#plotOptions- ...
- mybatis 调用mysql存储过程 带输出输入参数
http://lohasle.iteye.com/blog/1669879 存储过程都是一样的,只是根据自己的喜好,可以用MAP或者JAVABEAN传递参数. -- ----------------- ...
- Object-c学习之路十二(OC的copy)
oc中的拷贝分为:copy(浅拷贝)和mutablecopy(深拷贝). 浅拷贝也为指针拷贝,拷贝后原来的对象计数器会+1: 深拷贝为对象拷贝,原来的对象计数器不变. 注意:自定义对象拷贝时要实现NS ...
- Oracle442个应用场景------------基础应用场景
/////////////////基础知识////////////////// 应用场景178:最简单的select语句 SELECT * FROM Employees; 应用场景179:指定要查询的 ...
- docke 网络配置2
一,docker 的bridge模式是和vmware中的nat模式类似的,但是如果想要弄成和vmwae中的bridge怎么办呢? 说明,bridge模式获取的Ip是与宿主机的ip是出于同一个网段的. ...
- asp.net mvc 删除栏目、栏目下又有子栏目的处理方式
- 修饰器模式(day04)
修饰器设计模式 --最近我给女朋友买了一款可以更换外壳的手机.现在的外壳是红色的,假如我想用这款手机的时候,会更换成银灰色的外壳.但是我不能随意更换天线或者话筒,因为这些功能模块在手机生产的时候就已经 ...
- Hadoop基本原理之一:MapReduce
1.为什么需要Hadoop 目前,一块硬盘容量约为1TB,读取速度约为100M/S,因此完成一块硬盘的读取需时约2.5小时(写入时间更长).若把数据放在同一硬盘上,且全部数据均需要同一个程序进行处理, ...
- 在js传递参数中含加号(+)的处理方式
一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+).但是对于带有中文的参数来 ...