上一篇Popup Bug中修改了SystemParameters类中静态只读属性MenuDropAlignment. var t = typeof(SystemParameters); var field = t.GetField("_menuDropAlignment", BindingFlags.NonPublic | BindingFlags.Static); field.SetValue(null, false); 其中 _menuDropAlignment 为SystemPa…
Unity编辑器 - 资源修改立即写入磁盘AssetDataBase.SaveAssets() 在编写编辑器时,如果需要修改Unity序列化资源(如Prefab,美术资源,ScriptableObject等类型),修改后应将该资源标记为已更改: EditorUtility.SetDirty(Object target) 但标记为已更改的资源Unity不会立即保存到磁盘,这时需要调用: AssetDataBase.SaveAssets() PS: 一般所有资源修改完后调用,调用后Unity会重新导…
Unity编辑器中何时需要协程 当我们定制Unity编辑器的时候,往往需要启动额外的协程或者线程进行处理.比如当执行一些界面更新的时候,需要大量计算,如果用户在不断修正一个参数,比如从1变化到2,这种变化过程要经历无数中间步骤,调用N多次Update,如果直接在Update中不断刷新,界面很容易直接卡死.所以在一个协程中进行一些优化,只保留用户最后一次参数修正,省去中间步骤,就会好很多.这属于Unity编辑器的内容,也属于优化的内容,还是放在优化中吧. 解决问题思路 Unity官网的questi…
Unity学习参考文档和开发工具 unity的官网文档:https://docs.unity3d.com/cn/current/Manual/ScriptingSection.html ■ 学习方式: 首先了解unity相关概述,快速认识unity编辑器,然后抓住重点的学:游戏对象.组件|C#脚本.预制体.UI 学习过程你会发现,其实Unity中主要是用c#进行开发. 因为在这个过程中,无非就是,对游戏对象通过挂载的C#脚本,修改一下组件的一些属性,控制一下激活之类的操作.到了UGUI,同样,也…
Unity的编辑器可以通过写脚本进行界面定制,包括添加功能菜单,今天写游戏Demo用到了记录一下. 为Unity添加子菜单 示例程序 [AddComponentMenu("Defend Homeland/GridNode")] public class GridNode : MonoBehaviour { ...... } 子菜单预览 相应地在Unity的Component菜单下就会有我添加的脚本 在编辑器中执行函数 示例代码 //构建地图 [ContextMenu("Bui…
来自:http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html 尽管我们通常认为通过JAVA的反射机制来访问其它类的私有字段和私有方法是可行的,其实并没有那么困难. 注释:只有在单独的JAVA程序中运行该代码才有效,就像你做一些单元测试或者常规的程序.如果你尝试在JAVA APPLET内使用该方法,你需要稍稍修改SecurityManager.但是,因为你不是经常需要与它打交道,这里也就不再赘述了. 这…
通过GUIStyle,可以自定义Unity编辑器的样式. GUIStyle可以new一个全新的实例,这样,需要自己处理所有自己需要的效果. GUIStyle还可以基于已经存在的实例new一个新的实例,这样,只需对原有的效果中不符合自己需求的进行修改. 就像这样: GUIStyle textStyle = new GUIStyle("HeaderLabel");textStyle.fontSize = 20; 一个基于 HeaderLabel  的字体显示风格,然后把字号放大成20: 然…
Unity编辑器功能丰富易上手,其实编辑器提供的大多数菜单操作,在代码里面都是能够找到对应接口的,但是这些接口都没有对我们开放,怎么办? 很简单,直接使用反射调用即可. 首先使用Reflector或ILSpy将UnityEditor和UnityEngine进行反编译(有源码的可以直接查看源码更好),然后在里面找你需要的功能即可,unity的底层代码命名是非常规范的,多数功能都能直观的找到: 下图中是Hierarchy视图中一些操作函数,怎么样,是不是很直观: 怎么调用这些函数呢,下面展示了sta…
分类:Unity.C#.VS2015 创建日期:2016-03-26 一.简介 本节要点:了解Unity编辑器的菜单和视图界面,以及最基本的操作,这是入门的最基础部分,必须掌握. 二.启动界面 双击桌面上的快捷键,它就会自动启动Unity. 1.Getting started选项卡 启动Unity以后,在开始学习Unity之前,最好先播放一下"Getting started"选项卡中的视频介绍,了解有哪些可用的参考源和资料.该视频播放截图如下: 2.Project选项卡 如果你原来对U…
Unity编辑器扩展 Chapter7--使用ScriptableObject持久化存储数据 unity unity Editor ScirptableObject  Unity编辑器扩展 Chapter7--使用ScriptableObject持久化存储数据 OverView API ScriptableObject是unity中的一种特别的类型,它不需要挂在场景中的对象上.它可以视作asset资源一样,存储在项目文件中.在一些特殊的情况下要比JSON,XML及TXT方式来存储持久化数据要受益…