Unity3D研究院之拓展Scene视图
Scene视图是编辑游戏模型的地方,其实它还可以进行编辑。如下图所示,我给Scene视图做了简单的编辑。

Scene视图的拓展是基于对象的,意思就是你必须在Hierarchy视图中选择一个对象才行。Hierarchy视图中选择不同的对象可以有不同的Scene视图。图中我们创建了一个立方体对象,接着给它绑定一个脚本。

Test.cs 是个空空的脚本。
using UnityEngine;
using System.Collections; public class Test : MonoBehaviour
{ }
然后在Project视图中创建一个Editor文件夹,把MyEditor.cs放进去。
using UnityEditor;
using UnityEngine; //自定义Tset脚本
[CustomEditor(typeof(Test))]
//请继承Editor
public class MyEditor : Editor
{ void OnSceneGUI()
{
//得到test脚本的对象
Test test = (Test) target; //绘制文本框
Handles.Label(test.transform.position + Vector3.up*2,
test.transform.name +" : "+ test.transform.position.ToString() ); //开始绘制GUI
Handles.BeginGUI(); //规定GUI显示区域
GUILayout.BeginArea(new Rect(100, 100, 100, 100)); //GUI绘制一个按钮
if(GUILayout.Button("这是一个按钮!"))
{
Debug.Log("test");
}
//GUI绘制文本框
GUILayout.Label("我在编辑Scene视图"); GUILayout.EndArea(); Handles.EndGUI();
} }
此时,你可以把之前的Test.cs脚本绑定在任意对象身上,然后在Hierarchy视图中点击对象即可在Scene视图中看到编辑的视图啦。

最后我在说一下,在OnSceneGUI()中只能通过Handles来绘制新视图,如果你想引入GUI的元素哪么就需要使用BeginGUI()和EndGUI()组合的使用。 Handles还提供了很多编辑视图的方式,详细信息大家请看API http://docs.unity3d.com/Documentation/ScriptReference/Handles.ArrowCap.html 这里我就不在赘述。
本文下载地址:http://vdisk.weibo.com/s/AB2i-
今天我同事问我,上面的方法,必须鼠标选中才可以显示,能不能不选中也能显示?
http://answers.unity3d.com/questions/44771/labeling-objects-in-the-scene-editor-view.html
把下面的代码放在Editor目录下即可。
- 本文固定链接: http://www.xuanyusong.com/archives/2303
- 转载请注明: 雨松MOMO 2013年05月08日 于 雨松MOMO程序研究院 发表
Unity3D研究院之拓展Scene视图的更多相关文章
- Unity3D研究院之拓展系统自带组件的Inspector视图
转自 http://www.xuanyusong.com/archives/3455 using UnityEngine; using System.Collections; using UnityE ...
- Unity3D研究院之拓展自定义编辑器窗口
Unity支持自行创建窗口,也支持自定义窗口布局.在Project视图中创建一个Editor文件夹,在文件夹中在创建一条脚本. 自定义窗口需要让脚本继承EditorWindow在设置MenuItem, ...
- 拓展Scene视图——场景编辑Vector2/3
Test.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class ...
- Unity3D研究院之为什么Inspector视图中脚本前面的勾选框没了
我一个同事刚问我为啥有时候脚本的勾选项没有了?有时候不想让某条脚本执行,可以直接在编辑器中点掉勾选按钮即可.如下图所示 以前我也遇到过这个问题,但是一直都没怎么注意,因为一般情况下也用不到.今天刚好有 ...
- Unity3D研究院编辑器之脚本设置ToolBar
Unity版本5.3.2 如下图所示,ToolBar就是Unity顶部的那一横条.这里的所有按钮一般情况下都得我们手动的用鼠标去点击.这篇文章我们说说如果自动操作它们 1.自动点击左边四个按钮 (拖动 ...
- (转)Unity3D研究院之Assetbundle的实战(六十三)
上一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity3D研究院之Assetbundle的原理(六十一) 本篇文章我们将说说assetbundl ...
- (转)Unity3D研究院之将场景导出XML或JSON或二进制并且解析还原场景
自:http://www.xuanyusong.com/archives/1919 导出Unity场景的所有游戏对象信息,一种是XML一种是JSON.本篇文章我们把游戏场景中游戏对象的.旋转.缩放.平 ...
- Unity3D研究院之Assetbundle的实战(六十三)
http://www.xuanyusong.com/archives/2405 上一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity3D研究院 ...
- Unity3D研究院编辑器之脚本设置ToolBar及脚本设置顶视图
Unity版本5.3.2 如下图所示,ToolBar就是Unity顶部的那一横条.这里的所有按钮一般情况下都得我们手动的用鼠标去点击.这篇文章我们说说如果自动操作它们 1.自动点击左边四个按钮 (拖动 ...
随机推荐
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---40
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- alloc_chrdev_region申请一个动态主设备号,并申请一系列次设备号
ret = alloc_chrdev_region(&ndev, 0, 1, "chr_dev"); //分配设备号 alloc_chrdev_region申请一个动态主设 ...
- json-gson 解析泛型及解析null
参考://public static class paraJson {public class paraJson{ static Gson gson = new GsonBuilder().regis ...
- DOM和jquery对象之间的转换
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- jquery -----简单分页
<!DOCTYPE html> <head> <title>无标题页</title> <script src="javsscript/j ...
- 2018年东北农业大学春季校赛 D wyh的迷宫【搜索】
链接:https://www.nowcoder.com/acm/contest/93/D来源:牛客网 题目描述 给你一个n*m的迷宫,这个迷宫中有以下几个标识: s代表起点 t代表终点 x代表障碍物 ...
- 详解Swift和OC的混编
前言: 我们在一些情况下,仅仅使用swift 是无法完成一个项目的,在swift项目中必要用到 OC 实现一些功能,比如,项目要使用一些第三方的框架,但这个第三方的框架却是用 OC 实现的,或者你的项 ...
- JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况
概要:某些post请求,例如,登录的请求除了有我们再页面上需要输入的一些值(用户名.密码.是否记住密码等)之外,还有其他的参数,例如token等等,而且这些参数不固定,也就是说每一次post请求这些参 ...
- Kali Linux 2017中Scapy运行bug解决
Kali Linux 2017中Scapy运行bug解决 Scapy是一款强大的网络数据包构建工具.在Kali Linux 2017中,当在scapy的命令行中,运行res.graph()生成图形 ...
- struts2设置默认首页
在默认情况下,我们一般希望.当我们在浏览器中输入127.0.0.1:8080/project_name时候跳到项目的首页,那么在struts中我们这么设置呢?光加上<default-action ...