编辑器

Special Folders

Hidden Folder(start with .)

Standard Assets:第一批加载的文件

Editor:只在编辑下才能使用,

Plugins

Resources:原生资源

Editor Default Resources

Gizmos:Gizmos资源

StreamingAssets:自定义资源

编辑器功能扩展-EditorWindow

自定义一个编辑器窗口界面

Unity的编辑器的UI操作都很难用,继承EditorWindow

在OnGUI中绘制UI,触发并显示出来

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine; public class MyWindow : EditorWindow { string myString = "Hello World";
bool groupEnabled;
bool myBool = true;
float myFloat = 1.23f; // Add menu item named"My Window" to the Window menu
[MenuItem("Window/My Window")]
public static void ShowWindow()
{
// Show existing window instance.If one doesn't exist,make one.
EditorWindow.GetWindow(typeof(MyWindow));
} // 每一帧都会触发
private void OnGUI()
{
GUILayout.Label("Base Settings", EditorStyles.boldLabel);
myString = EditorGUILayout.TextField("Text Field", myString); groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Settings", groupEnabled);
myBool = EditorGUILayout.Toggle("Toggle", myBool);
myFloat = EditorGUILayout.Slider("Slider", myFloat, -3, 3);
EditorGUILayout.EndToggleGroup();
}
}

编辑器功能的扩展-EditorWindow

自定义一个编辑器窗口界面

Unity的编辑器UI操作都很难用

继承EditorWindow在OnGUI中绘制UI触发并显示出来

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine; [CustomEditor(typeof(LookAtPoint))] // 对于LookAtPoint的Custom
public class LookAtPointEditor : Editor { void OnInspectorGUI()
{
LookAtPoint lp = target as LookAtPoint;
lp.lookAtPoint = EditorGUILayout.Vector3Field("Look At Point", lp.lookAtPoint);
if (GUI.changed)
{
EditorUtility.SetDirty(target);
}
} private void OnSceneGUI()
{
LookAtPoint lp = target as LookAtPoint;
lp.lookAtPoint = Handles.PositionHandle(lp.lookAtPoint, Quaternion.identity); // 坐标系
if (GUI.changed)
{
EditorUtility.SetDirty(target);
}
}
}

Profiler

采样

各性能指标

截取内存

连接设备

Gizmos

提供对场景里GameObject的必要调试信息,

充分利用Mono的两个接口:OnDrawGizmos和OnDrawGizmosSelected

 #if UNITY_EDITOR
private void OnDrawGizmos()
{
Gizmos.color = Color.red;
Gizmos.DrawRay(transform.position,transform.TransformDirection(Vector3.forward));
}
#endif

Unity基础-编辑器的更多相关文章

  1. unity 基础之InputManager

    unity  基础之InputManager 说一下unity中的InputManager,先截个图 其中Axes指的是有几个轴向!Size指的是有几个轴,改变Size可以添加或者减少轴! Name指 ...

  2. unity 基础学习 transform

    unity  基础学习   transform 1.unity采用的是右手坐标系,X轴右手为+,Y轴向上为+,Z轴朝里为+; 但是我们从3D MAX中导入模型之后,发现轴向并没有遵从这个原理, 其实是 ...

  3. Unity基础学习-Unity概述

    Unity 概述 Unity是一个强大的引擎,里面包括大量的工具用来满足各种各样的需求.Unity的编辑器是直观的可定制的,让您在您的工作流中有较大的自由度. 本小节是开始学习Unity的关键部分.里 ...

  4. Unity基础6 Shadow Map 阴影实现

    这篇实现来的有点墨迹,前前后后折腾零碎的时间折腾了半个月才才实现一个基本的shadow map流程,只能说是对原理理解更深刻一些,但离实际应用估计还需要做很多优化.这篇文章大致分析下shadow ma ...

  5. Unity VR编辑器――如上帝般创建VR内容,Project Soli google用雷达识别手势体积相当于一张 Mini SD 内存卡

    Unity VR编辑器――如上帝般创建VR内容在GDC的一个活动中,Unity首席设计师Timoni West展示了最新的Unity VR编辑器的原型系统,让你如上帝般创建VR应用,从一片空白场景开始 ...

  6. Unity 基础

    Unity 基础是unity入门的关键.他将讲解Unity的界面, 菜单项,使用资源,创设场景,并发布版本. 当你读完这段,你将理解unity是怎么工作的,如何有效地使用它,并且完成一个基本的游戏. ...

  7. Unity 3D编辑器扩展介绍、教程(二) —— 创建窗口

    Unity编辑器扩展教程(二) 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Brief Introd ...

  8. Unity基础知识学习笔记二

    1,object Instantiate(object original,Vector3 position,Quaternion rotation)       克隆原始物体,并返回克隆物体.     ...

  9. 【Unity基础知识之三】Unity Assets目录下的特殊文件夹名称

    Unity3D的特殊目录名称   Unity预留了一些目录名称,这些目录有着特殊的含义.比较重要的有: Resources这个目录下的所有文件都会被打包到发布版本中,程序可以通过文件路径来访问它们.这 ...

随机推荐

  1. Ant Design中的Form组件

    1. 使用Form.create()包裹过的组件可以获取到this.props.form属性 Form.create()(Comp) 2. getFieldDecorator() // 在表单中的使用 ...

  2. Windows服务器初始配置

    系统状态是否良好 检查ip地址.子网掩码等配置 防火墙是否关闭 是否有攻击,有多大的攻击,什么类型的攻击,攻击流量图 是否中病毒 1.改端口 (1)打开注册表 [HKEY_LOCAL_MACHINE\ ...

  3. 作用域提升(Scope Hositing )是 Webpack 3 的标志性特征

    http://blog.csdn.net/playboyanta123/article/details/73533079

  4. 正确使用Enum的FlagsAttribute

    正确使用Enum的FlagsAttribute FlagsAttribute 标志枚举对象的值可以包括多个枚举成员,每个成员代表枚举值中的一个位域 使用步骤 添加标记[Flags] 用 2 的幂(即 ...

  5. 牛客网Java刷题知识点之什么是匿名内部类、匿名内部类的使用原则、匿名内部类初始化、匿名内部类使用的形参为何要为final 和 案例

    不多说,直接上干货! 什么是匿名内部类 匿名内部类就是没有名字的内部类. 不使用关键字class . extends .implements 没有构造函数 必须继承其他类或实现其他接口 正因为没有名字 ...

  6. Python 踩坑之旅进程篇其三pgid是个什么鬼 (子进程\子孙进程无法kill 退出的解法)

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4.1 技术关键字 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 Github: https: ...

  7. FloatHelper

    function FloatHelper() { } FloatHelper.prototype.showFloater = function (Target, Title, Action, Acti ...

  8. HTTP状态码完整版

    HTTP 状态代码的完整列表   1xx(临时响应) 用于表示临时响应并需要请求者执行操作才能继续的状态代码. 代码 说明 100(继续) 请求者应当继续提出请求.服务器返回此代码则意味着,服务器已收 ...

  9. 解决mysql本地数据库不能用ip访问的问题

    [转]http://gone18611.blog.163.com/blog/static/1851943120104705244116/ MYSQL数据库缺省安装后,其默认用户名ROOT如果只能以&l ...

  10. spring boot + spring data jpa

    Spring Data Repository的核心接口是Repository(好像也没什么好惊讶的).这个接口需要领域类(Domain Class)跟领域类的ID类型作为参数.这个接口主要是让你能知道 ...