Unity 编辑器扩展 场景视图内控制对象
http://blog.csdn.net/akof1314/article/details/38129031
假设有一个敌人生成器类,其中有个属性range用来表示敌人生成的范围区域大小,那么可以用OnDrawGizmos函数来绘制它在场景视图所代表的区域大小,便于开发调试。这个敌人生成器类,类似如下:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using UnityEngine;
using System.Collections; public class EnemySpawn : MonoBehaviour void OnDrawGizmos() void OnDrawGizmosSelected() |
选中:
|
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 41 |
using UnityEngine;
using UnityEditor; [CustomEditor(typeof(EnemySpawn))] // 计算4个角落 float y = v0.y; // 4个缩放值控制柄 Handles.Label(corners[i], i.ToString()); if (GUI.changed) |
|
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 41 42 43 44 45 46 47 48 49 50 |
using UnityEngine;
using UnityEditor; [CustomEditor(typeof(EnemySpawn))] // 计算4个角落 float y = v0.y; // 4个缩放值控制柄 Handles.Label(corners[i], i.ToString()); if (EditorGUI.EndChangeCheck()) EditorUtility.SetDirty(target); |
|
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
using UnityEngine;
using UnityEditor; [CustomEditor(typeof(EnemySpawn))] // 计算4个角落 float y = v0.y; EditorGUI.BeginChangeCheck(); // 4个缩放值控制柄 // 换算成GUI坐标 Bounds b = new Bounds(handles[0], Vector3.zero); Vector2 min = b.min; // 调试绘制是否计算正确 // 是否鼠标在控制柄上 scaleValue = Handles.ScaleValueHandle(enemySpawn.range, Handles.Label(corners[i], i.ToString()); if (EditorGUI.EndChangeCheck()) EditorUtility.SetDirty(target); |
|
1
2 3 4 |
// 调试绘制是否计算正确
Handles.BeginGUI(); GUI.Box(rect, rect.ToString()); Handles.EndGUI(); |
1.Unity3D研究院之拓展Scene视图(三) http://www.xuanyusong.com/archives/2303
Unity 编辑器扩展 场景视图内控制对象的更多相关文章
- unity编辑器扩展_05(删除游戏对象并具有撤回功能)
代码: [MenuItem("Tools/Delete",false,1)] static void Delete() { GameObject[] go ...
- unity 编辑器扩展简单入门
unity 编辑器扩展简单入门 通过使用编辑器扩展,我们可以对一些机械的操作实现自动化,而不用使用额外的环境,将工具与开发环境融为一体:并且,编辑器扩展也提供GUI库,来实现可视化操作:编辑器扩展甚至 ...
- Unity编辑器扩展chapter1
Unity编辑器扩展chapter1 unity通过提供EditorScript API 的方式为我们提供了方便强大的编辑器扩展途径.学好这一部分可以使我们学会编写一些工具来提高效率,甚至可以自制一些 ...
- Unity编辑器扩展 Chapter7--使用ScriptableObject持久化存储数据
Unity编辑器扩展 Chapter7--使用ScriptableObject持久化存储数据 unity unity Editor ScirptableObject Unity编辑器扩展 Chapt ...
- Unity编辑器扩展Texture显示选择框
学习NGUI插件的时候,突然间有一个问题为什么它这些属性可以通过弹出窗口来选中呢? 而我自己写的组件只能使用手动拖放的方式=.=. Unity开发了组件Inspector视图扩展API,如果我们要写插 ...
- Unity 编辑器扩展
自定义检视面板的使用: 先是定义一个脚本文件,我们来修饰它的检视面板: [HelpURL("http://www.baidu.com")] public class Atr : M ...
- unity编辑器扩展_06(给选项添加快捷键,控制菜单是否启用)
代码: [MenuItem("Tools/Delete ", true, 1)] static bool DeleteVadidate() { if (S ...
- Unity 编辑器扩展 Chapter2—Gizmos
二. 使用Gizoms绘制网格及矩阵转换使用 1. 创建Leve类,作为场景控制类: using UnityEngine; //使用namespace方便脚本管理 namespace RunAndJu ...
- unity编辑器扩展学习
扩展编辑器实际上就是在unity菜单栏中添加一些按钮,可以一键执行一些重复性的工作. 一.添加按钮 1.简单使用MenuItem特性 using UnityEngine; using UnityEdi ...
随机推荐
- 【C++】继承中的隐藏与覆盖
没有访问控制符时默认为私有继承. 当基类中的某个函数有若干个重载版本,继承类中也实现了该函数的某个重载版本时,参数完全相同的基类版本被覆盖,基类的其他版本被隐藏. 1.若要在继承类中使用基类的被覆盖方 ...
- PHP的普通传值与引用传值以及unset
首先,要理解变量名存储在内存栈中,它是指向堆中具体内存的地址,通过变量名查找堆中的内存; 普通传值,传值以后,是不同的地址名称,指向不同的内存实体; 引用传值,传引用后,是不同的地址名称,但都指向同一 ...
- zabbix获取到的数值自定义单位
1) 查找php文件 # find / -name "func.inc.php" /usr/share/zabbix/include/func.inc.php 2)修改文件 #vi ...
- 【转】jmeter入门教程- Jmeter教程及技巧汇总
https://blog.csdn.net/zouxiongqqq/article/details/72843500
- [centos6.5] 把xampp的htdocs改为其他目录
vim /opt/lampp/etc/httpd.conf DocumentRoot "/opt/lampp/htdocs" 改为 DocumentRoot "/var/ ...
- 百度MapAPI之地理编码
地理编码:将具体地址数据转换为对应坐标点经纬度功能 大致思路: 1.从数据库取得具体地理位置 2.将地址作为参数访问API接口,获取返回数据 3.处理response数据并将经度(lng.longit ...
- 27、Django实战第27天:全局搜索功能开发
当我们选择其中一个类别(公开课,课程讲师,授课老师),输入搜索内容,点击搜索后会跳转到相应的列表页中进行展示 我们输入的内容作为参数keyword传入后台 搜索"公开课" 当课程中 ...
- [BZOJ5020][THUWC2017]在美妙的数学王国中畅游(LCT)
5020: [THUWC 2017]在美妙的数学王国中畅游 Time Limit: 80 Sec Memory Limit: 512 MBSec Special JudgeSubmit: 323 ...
- 【离线】【递推】【multiset】 Codeforces Round #401 (Div. 2) C. Alyona and Spreadsheet
对询问按右端点排序,对每一列递推出包含当前行的单调不下降串最多向前延伸多少. 用multiset维护,取个最小值,看是否小于等于该询问的左端点. #include<cstdio> #inc ...
- python操作mysql封装成类
import pymysqlimport loggingimport sys # 加入日志#获取logger实例logger = logging.getLogger("baseSpider& ...