常见UI组件的一个模板
效果:

代码:
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.IO;
using UnityEngine.SceneManagement; public class Test: EditorWindow
{
[MenuItem("地图/测试")] static void AddWindow()
{
//创建窗口
Test window = (Test)EditorWindow.GetWindow(typeof(Test), false, "test");
window.Show(); } enum RGB
{
red,
green,
blue
} RGB rgb; private int selectedMethod;
bool IsFoldOut;
string folderpath; bool toggle_1;
bool toggle_2;
bool toggle_3; void OnGUI()
{
// if (GUILayout.Button("test"))
// {
// Debug.Log("test"); // }
//最上分栏的小按钮,系统自带图标名称链接:http://www.xuanyusong.com/archives/3777
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUIStyle buttonStyle;
buttonStyle = new GUIStyle(UnityEditor.EditorStyles.miniButtonLeft);
if (selectedMethod == )
buttonStyle.normal.background = buttonStyle.onActive.background;
if (GUILayout.Button(EditorGUIUtility.IconContent("TerrainInspector.TerrainToolRaise"), buttonStyle))
{ selectedMethod = ;
}
buttonStyle = new GUIStyle(UnityEditor.EditorStyles.miniButtonRight);
if (selectedMethod == )
buttonStyle.normal.background = buttonStyle.onActive.background;
if (GUILayout.Button(EditorGUIUtility.IconContent("TerrainInspector.TerrainToolSetheight"), buttonStyle))
{ selectedMethod = ;
}
GUILayout.FlexibleSpace();
EditorGUILayout.EndHorizontal();
//说明栏
EditorGUILayout.BeginVertical(GUI.skin.box);
GUILayout.Label("这是一个说明栏", EditorStyles.wordWrappedLabel);
EditorGUILayout.EndVertical(); //枚举pop
rgb =(RGB) EditorGUILayout.EnumPopup("rgb枚举",rgb); //收起控件
IsFoldOut = EditorGUILayout.Foldout(IsFoldOut, "展开控件");
if (IsFoldOut)
{
EditorGUILayout.LabelField(new GUIContent("hello"));
}
//打开文件夹
EditorGUILayout.BeginHorizontal();
GUILayout.Label("打开文件夹:");
folderpath = EditorGUILayout.TextField(folderpath);
if (GUILayout.Button("浏览"))
{ EditorApplication.delayCall += OpenFolder; }
EditorGUILayout.EndHorizontal(); GUIStyle labStyle = new GUIStyle(UnityEditor.EditorStyles.label);
labStyle.fontSize = ;//设置字体大小
labStyle.fontStyle = FontStyle.Bold;//设置粗体
labStyle.alignment = TextAnchor.MiddleCenter;//字体垂直居中
labStyle.normal.textColor =Color.red;//字体颜色
GUILayout.Label(new GUIContent("GUILayout.Label"),labStyle); GUIStyle btnStyle = new GUIStyle(GUI.skin.GetStyle("Button"));
btnStyle.normal.textColor = Color.red;//修改按钮字体颜色
//btnStyle.normal.background
if (GUILayout.Button("GUILayout.Button", btnStyle))
{ } EditorGUILayout.BeginToggleGroup("勾选框",true); EditorGUILayout.EndToggleGroup();
// GUIStyle btnStyle = new GUIStyle(GUI.skin.GetStyle(""));
// GUIStyle buttonStyle= new GUIStyle(UnityEditor.EditorStyles.label);
// EditorGUILayout.LabelField(new GUIContent("EditorGUILayout.LabelField"));
this.Repaint();
} void OpenFolder()
{
string scenePath = SceneManager.GetActiveScene().path;
string path = EditorUtility.OpenFolderPanel("选择文件夹", "","");
if (path.Length == )
return;
folderpath = path;
}
}
常见UI组件的一个模板的更多相关文章
- Android常见UI组件之ListView(二)——定制ListView
Android常见UI组件之ListView(二)--定制ListView 这一篇接上篇.展示ListView中选择多个项及实现筛选功能~ 1.在位于res/values目录下的strings.xml ...
- Android常见UI组件之ListView(一)
使用ListView显示一个长的项列表 1.新建一个名为"BasicView5"的Android项目. 2.改动BasicView5.java文件.改动后的程序例如以下: pack ...
- 这是一个比较全的Android UI 组件
Android组件及UI框架大全 原文地址:http://blog.csdn.net/smallnest/article/details/38658593 Android 是目前最流行的移动操作系统 ...
- 前端UI组件复用工具
"懒"是第一生产力. 代码复用总是程序员喜闻乐见的,前端组件化的最终目的就是复用,今天我们就将深入探讨如何实现UI组件的复用. 通常我们所说的组件往往是包含业务逻辑的前端组件,而这 ...
- 学习通过Thread+Handler实现非UI线程更新UI组件
[Android线程机制] 出于性能考虑,Android的UI操作并不是线程安全的,这就意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为了解决这个问题,Android制定了一条简单的规则 ...
- 学习通过Thread+Handler实现非UI线程更新UI组件(转)
[Android线程机制] 出于性能考虑,Android的UI操作并不是线程安全的,这就意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为了解决这个问题,Android制定了一条简单的规则 ...
- 创建一个pre标签展开折叠的UI组件(原创)
这些天练习UI组件的编写,顺便模仿一个h5版本的pre标签收缩展开的效果组件: 兼容ie8.9,谷歌,火狐: 图片效果如下: demo.html代码: <!DOCTYPE html> &l ...
- 创建一个自己的Vue UI组件库,并将它发布在npm上
本文仅限于入门级,没有成规模制作,希望能对你有所帮助. 因为在开发多个项目中可能会用到同一个组件,那么我们通过复制粘贴的形式更新,无异于是笨拙的,我们可以通过上传到npm后,不断迭代npm包来实现更新 ...
- 2021 从零开始打造一个自己的 UI 组件库
2021 从零开始打造一个自己的 UI 组件库 refs GUI https://github.com/xgqfrms/gui/ https://www.npmjs.com/package/@xgqf ...
随机推荐
- OpenSessionInViewFilter的配置
OpenSessionInViewFilter是用来处理懒加载异常的. 懒加载异常的意思的就是:还用不到的东西,就先不加载,等需要的时候再来加载. 所以懒加载对性能有一定的提升,但是,这也会出现一些问 ...
- JAVA中几种常见集合的使用实例
Java.util.ArrayList(类): *;import java.util.*;public class CollectionTest{//List是一个能包含重复元素的已排序的Collec ...
- python 常用的模块(struct)转
准确地讲,Python没有专门处理字节的数据类型.但由于str既是字符串,又可以表示字节,所以,字节数组=str.而在C语言中,我们可以很方便地用struct.union来处理字节,以及字节和int, ...
- php不重新编译添加模块
php不重新编译添加模块 本文以安装mysqli模块为例 一.检查 1:首先保证php-fpm能正常启动 2:查看当前已安装的php模块是否有mysqli [root@web01 ~]# /appli ...
- java 过滤器(Filter)与springMVC 拦截器(interceptor)的实现案例
java 过滤器Filter: package com.sun.test.aircraft.filter;import javax.servlet.*;import java.io.IOExcepti ...
- 怎样优雅的研究 RGSS3 (四) 使窗体从画面边缘弹出
在非常多游戏中,窗体能够从游戏画面的边缘弹出. 而在 RGSS3 的默认脚本中时没有这样的功能的,当在地图上按下取消键时.游戏菜单会突然出现. 如今我们能够为主菜单加入动画效果,使其在屏幕边缘弹出. ...
- vscode - 更改emmet生成代码
有时候生成的代码,并不适用自己,所以想想改生成代码: 因为windows查找文件/文件内容非常慢,所以借用了一下Linux的搜索命令,查找了一下 ie=edge ,最后,找到了 expand-ful ...
- jquery插件:aotocomplete
aotocomplete.js http://blog.csdn.net/smeyou/article/details/7980273?_t_t_t=0.3565731019350138 $(func ...
- 闪屏(Splash)
好久没弄ReactNative了, 写个怎样实现闪屏(Splash)的文章吧. 注意: (1) 怎样切换页面. (2) 怎样使用计时器TimerMixin. (3) 怎样使用动画效果. (4) 怎样载 ...
- 安装java运行环境
1.查看java安装版本 执行命令java -version查看已安装java运行环境信息. 2.下载JDK 到sun官网下载需要的jdk版本,地址为:http://www.oracle.com/te ...