![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity编辑器扩展
文章平均质量分 54
Unity编辑器扩展
Unique_849997563
我不太愿意麻烦别人,但我又想不懂就问,所以很矛盾!
展开
-
【Unity编辑器扩展实践】升级Unity2021版本后新加图片打图集异常
问题: Unity2018升级到Unity2021,打图集时新增图片的internalID为0(图1),左边是未修改之前的meta文件信息。导致将图片推拽到预制之后,预制没有正确保存图片信息(图2),游戏运行后加载预制图片为空。修改思路:因为未找到InternalID为0的具体原因,所以在准备修改该internalID。在图集数据生成之后,遍历Sprite的InternalID,如果为0,用SpriteID生成一个InternalID。然后重新分离图集,即可修改InternalID为0的值。原创 2023-04-10 11:47:33 · 864 阅读 · 1 评论 -
【Unity编辑器扩展实践】、扩展Hierarchy菜单
原创 2022-03-08 21:08:09 · 4511 阅读 · 0 评论 -
【Unity编辑器扩展实践】、基于模板创建Lua脚本
当前项目使用C#开发版本,IOS使用Xlua热更代码。每次创建Xlua文件的时候,都是复制之前的Lua文件修改文件名、类名,模板内容基本一致,觉得有一点麻烦。以前写过一篇文章:修改Unity、VS2015创建C#脚本时使用的模板,就想仿照着Unity创建C#脚本时的方法写一个创建Lua脚本的编辑器扩展。首先根据需求,创建一个Txt模板:100-Lua Script-NewLua.lua.txt...原创 2021-07-30 15:29:58 · 852 阅读 · 5 评论 -
【Unity编辑器扩展实践】、使用CopyTo迁移Unity中的资源
一般情况下,项目开发中都会有多个版本,我们项目是一个Int开发版本,一个Patch补丁版本,一个Release开放版本。刚完成开发阶段,将资源对比到Patch后,又在Int上修改的东西,也需要及时对比到Patch上,如果东西多,一般使用Beyond Compare进行比较,而如果修改东西较少,通常是在文件夹中打开当前资源路径,复制当前资源,修改当前文件夹路径,复制到对应路径。使用CopyTo迁移Unity中的资源。 private static Object[] objs; [Men原创 2021-03-25 17:38:01 · 964 阅读 · 0 评论 -
Unity导入资源后还手动修改资源的属性?这段代码可以给你节约很多时间:AssetPostprocessor
AssetPostprocessorUnity3d_AssetPostprocessor简单用法使用AssetPostprocessor自动处理导入的模型、Texture等原创 2020-03-23 11:19:39 · 1287 阅读 · 0 评论 -
【Unity编辑器扩展实践】、查找所有引用该图片的预制体
上一篇Unity编辑器扩展实践二、通过代码查找所有预制中已经查到到所有的预制体了。然后我们就可以用这些预制体做一些其他的操作了,比如查找该预制的资源引用。可以直接遍历预制,找到预制里面的所有Image组件,然后比较Sprite属性的值,看是否和检测的资源相同。Prefabs.Clear(); if (m_sprite == null) return; E...原创 2019-12-30 21:32:50 · 1548 阅读 · 0 评论 -
【Unity编辑器扩展实践】、通过代码查找所有预制
在Unity中对编辑器的扩展,通常都会操作文件的增删改查,这里介绍两种Unity中查找预制的方法,其他文件同理。1、利用AssetDatabase查找预制:通过AssetDatabase的FindAssets方法可以查找到所有文件的guid,参数filter是过滤字符。就是Unity中Project窗口下搜索栏右边两个按钮弹出来的东西,t标识是Type,l标识是lable。(如"Prefa...原创 2019-12-30 21:30:04 · 3372 阅读 · 0 评论 -
【Unity编辑器扩展基础】、GUI
一、静态属性1、颜色改变背景颜色:GUI.backgroundColor改变内容颜色:GUI.contentColor改变内容改变内容和背景颜色:GUI.color //改变背景颜色 GUI.backgroundColor = Color.yellow; GUI.Button(new Rect(0, 0, 200, 30),...原创 2019-12-12 16:51:31 · 1866 阅读 · 0 评论 -
【Unity编辑器扩展基础】、GUILayout
小结:1、TextArea、TextField等文本输入框不能复制,TextArea可以换行,可以自适应宽。2、参数可以传GUIContent的都可以显示图片或文字。3、GUILayout.Window需要调用BeginWindows、EndWindows才能显示窗口。using System.Collections;using System.Collections.Gen...原创 2019-11-22 16:30:56 · 3541 阅读 · 0 评论 -
【Unity编辑器扩展基础】、EditorGUILayout (三)
小结:1、画下拉框的方法有DropdownButton、EnumMaskField、EnumPopup、IntPopup、Popup、EnumMaskPopup、MaskField,DropdownButton比较麻烦,EnumMaskField、EnumMaskPopup、MaskField可以多选。2、画Slider的都没什么区别,只是MinMaxSlider是取值范围。usin...原创 2019-11-22 00:11:25 · 3974 阅读 · 1 评论 -
【Unity编辑器扩展基础】、EditorGUILayout(二)
小结:1、类似BeginFadeGroup、BeginHorizontal布局函数都有与之对应的EndFadeGroup、EndHorizontal,他们是一一对应的;2、创建ToggleGroup,关闭之后该ToggleGroup下的内容都不能在该组下面修改。3、BeginScrollView返回值是该滑动区域的位置,需要将它存下来,才能改变BeginScrollView的位置。...原创 2019-11-21 00:12:36 · 4779 阅读 · 0 评论 -
【Unity编辑器扩展基础】、EditorGUILayout (一)
小结:1、EditorGUILayout的各种Field和GUILayout的类似,但是EditorGUILayout可以复制粘贴;2、因为OnGUI是每帧执行的,EditorGUILayout中类似TextField、IntSlider、ColorField需要传一个值,返回修改值的,需要将返回值赋值给临时变量;3、params GUILayoutOption[] options可以...原创 2019-11-21 00:03:58 · 4721 阅读 · 0 评论 -
Unity利用CustomEditor扩展Inspector
在Unity中,当我们在Hierarchy或者Project面板中选择一个对象是,Inspector面板中会显示此对象的属性。很多时候,编写Unity工具的时候都需要扩展一下脚本在Inspector上的显示属性,添加一些按钮或者显示信息。这时候就需要用到CustomEditor属性了。1、创建一个ExampleEditor脚本,在类上添加[CustomEditor(typeof(T))]属...原创 2019-04-30 16:37:41 · 11472 阅读 · 0 评论 -
Unity中的 GUILayout.TextField实现复制粘贴功能
前一段时间,在项目中使用他们写的窗口工具的时候,发现有的TextField虽然可以选择,但是不能复制粘贴,然后有同事就去找了解决方案,用一个方法把选择的内容复制粘贴到剪切板上,代码如下: public static string HandleCopyPaste(int controlID) { if (controlID == GUIUtility.keybo...原创 2019-10-16 20:33:21 · 2219 阅读 · 2 评论 -
【Unity编辑器扩展实践】、利用txt模板动态生成UI代码
在使用Unity3D开发过程中,随着工作时间的推移,你肯定会发现写的代码,就只有那几个模板。比如控制UI的View代码,你会发现格式都是一样的,添加引用、UI变量声明、Awake中给UI变量赋值、添加Button事件、Destroy中注销事件。可以说都可以通过一个模板写出来。这里就介绍一个我用C#写的一个利用txt模板来生成代码的工具,如果有不太好的地方,还请谅解。之前我写了一个模板生成的代码...原创 2019-11-14 21:32:17 · 791 阅读 · 0 评论