UnityEditor
文章平均质量分 66
我寄人间雪满头丶
劝君莫惜金缕衣,劝君惜取少年时。
展开
-
Unity 显示Raycast Padding区域
Raycast Padding 是一个在Unity2020.1左右添加的功能,它可以让你在不改变RectTransform的值的情况下,调整Image或Text等UI对象的射线检测区域。你可以设置四个参数来控制上下左右的边距。这个功能很实用,在推出这个功能之前如果遇到点击区域过大或者过小的问题,只能通过新建Image并设置透明来做正确的点击区域。但是这个功能有个鸡肋的地方,就是无法通过视图Scene显示直观的知道区域变化(吐槽一下官方怎么没考虑到这个问题,很多开发者在论坛反馈)。原创 2023-04-25 22:08:17 · 1299 阅读 · 1 评论 -
Unity Editor编辑器开发相关知识点
EditorPrefsUnity编辑器为开发者提供了类似PlayerPrefs的数据保存方式EditorPrefs。EditorPrefs是适用于编辑器模式,而PlayerPrefs适用于游戏运行时。示例代码 bool currentValue = EditorPrefs.GetBool(key, false); bool newValue = GUILayout.Toggle(currentValue, label); Edito原创 2022-05-17 18:11:50 · 1408 阅读 · 0 评论 -
Unity编辑器界面绘制之GUIStyle和GUISkin的使用
前言合理使用GUIStyle可以让自定义编辑器界面更加精致美观。而GUISkin是用于本地化储存GUIStyle的,更方便使用。GUIStyle代码示例 private GUIStyle _tabStyle; _tabStyle = new GUIStyle(); _tabStyle.alignment = TextAnchor.MiddleCenter; //字体对齐 _tabStyle.fontSize = 16; /原创 2022-05-17 11:40:37 · 2032 阅读 · 0 评论 -
Unity Gizmos使用绘制
前言正文Gizmos绘制要使用到两个函数,分别是OnDrawGizmos和OnDrawGizmosSelected。当有脚本中原创 2022-05-11 17:00:58 · 3721 阅读 · 0 评论 -
UnityEditor编辑器自定义GUILayout Button颜色
代码 Color bc = GUI.backgroundColor; GUI.backgroundColor = Color.green; if (GUILayout.Button("CreateCurve", GUILayout.Height(30))) { } GUI.backgroundColor = bc;效果原创 2021-08-25 11:35:31 · 3527 阅读 · 0 评论 -
Unity Addressable将Project工程目录下的文件用代码转化为AssetReference
想用代码获取物体的AssetReference。逻辑很简单,实例AssetReference需要传入目标的GUID,所以我们只要取得了GUID就能取到AssetReference了。 public List<Sprite> levelPic; public List<AssetReference> levelPicRef;#if UNITY_EDITOR private void OnValidate() { string gui原创 2021-01-07 12:30:41 · 1114 阅读 · 0 评论 -
unity使用代码在项目中创建ScriptableObject资源文件
资源存储路径为相对路径。 var level = ScriptableObject.CreateInstance<类名>(); AssetDatabase.CreateAsset(level, @"Assets/Data/Levels/" + "name" + ".asset"); AssetDatabase.SaveAssets(); //存储资源原创 2020-12-29 12:33:14 · 3393 阅读 · 0 评论 -
unity自动化生成脚本工具
游戏开发中有很多要重复写的代码,尤其是UI面板。所以我们可以写一个编辑器扩展自动生成脚本提高开发效率。逻辑不难代码也不算长,根据注释捋一下逻辑就可以轻松使用啦。使用方法:选中Project面板下的UI预制体即可。要注意只会获取dicUIType字典中符合命名规则目标的路径。UIClass是我们创建类的模板,可以根据我们的需求灵活修改。注意要放在Editor文件夹下。参考地址代码部分:using UnityEngine;using UnityEditor;using System.Linq;原创 2020-11-13 01:49:52 · 1445 阅读 · 0 评论 -
Unity利用AssetPostprocessor对导入资源进行操作
将如下代码放入Asset->Editor文件夹下即可,在处理资源时会自动执行对应方法。using UnityEngine;using System.Collections;using UnityEditor;public class MyEditor : AssetPostprocessor { //模型导入之前调用 public void OnPreprocessModel() { Debug.Log ("OnPreprocessModel="+t原创 2020-10-09 15:29:21 · 2020 阅读 · 0 评论 -
Unity 编辑模式下自定义快捷键控制场景物体的显示状态
在用Unity开发过程中,为了便于观察,我们常常会在编辑模式中,选中并点击物体Inspector面板上acitve的勾,让物体显示或隐藏,作为一名程序员,对快捷操作应该是有追求的,在编辑器类中添加如下代码可以实现 “Ctrl + E” 快速显示或隐藏场景物体.using UnityEngine;using System.Collections;using UnityEditor;public class SetGameObjectActive : Editor { [MenuItem(原创 2020-07-10 16:29:42 · 641 阅读 · 0 评论 -
Unity中OnValidate的使用
OnValidate可以用来验证一些数据,脚本加载或Inspector中的任何值被修改时会调用。关于限定内容可以看下面的链接参考。相关链接我目前使用到的用法是拖拽赋值时获取目标值,效果如下图。当我往Games拖拽物体时,会给GamePath自动赋值。代码示例: const string GameFolderPath = "Game/"; public List<string> gamePath; #if UNITY_EDITOR public List原创 2020-06-05 13:36:35 · 9955 阅读 · 0 评论 -
Unity在Editor模式下遍历所有scene中的GameObject
前言自己写的编辑器扩展中要操作scene中的GameObject,用Selection.objects需要手动选择比较麻烦,于是找到了如下方法自动获取所有场景中的对象。需要注意要把操作的场景放到build setting里。代码 foreach (UnityEditor.EditorBuildSettingsScene S in UnityEditor.EditorBuildSettings.scenes) { //在built setting中被勾选的sce原创 2020-05-20 14:42:49 · 4178 阅读 · 0 评论 -
Unity复制组件和移除组件,以及删除本地资源文件
删除项目中的资源:File.Delete(path); //注意Path是相对路径,Assets/xxxUnity中只有AddComponent,没有RemoveComponent。移除组件如果是运行中用Destroy,如果是编辑器脚本用DestroyImmediate。DestroyImmediate(component, true); //第一个参数是组件类型,后面的bool参数是是否允许销毁资源。...原创 2020-05-09 14:08:04 · 7295 阅读 · 0 评论 -
Unity实现一键修改项目中所有Prefab预制体上的组件
前言有时会有对所有Prefab预制体进行统一修改的需求,比如修改组件脚本参数等。但是一个一个去修改的话数量少还好,数量多的话既没有效率又容易出错。本篇博客就是教大家如何一键修改所有预制体。代码话不多说,直接上干货。记得此脚本要放到Editor文件夹下。using System;using System.Collections;using System.Collections.Gener...原创 2019-12-02 14:40:25 · 5353 阅读 · 0 评论 -
Unity自动替换字体脚本
前言项目需要替换字体是件非常麻烦的事,需要一个个找Text组件。闲来无事写了个半自动替换字体的脚本(不是自动,还是需要动动手的)。也算用次抛砖引玉,利用此脚本的逻辑制作类似的功能,大大节约人力。用法将脚本放到Editor目录下,...原创 2020-04-07 16:55:48 · 1477 阅读 · 1 评论 -
Unity一键压图插件开发
前言前段时间给项目压图,上千张图片都是一张张手动压的,累的要死还没有意义,于是就萌生了做一个unity压图插件的想法。功能逻辑不是很复杂,因为是第一次研究EditorGUI,大概有一半时间都用在制作插件界面上了。正文界面效果:点击菜单栏中的 图片压缩->打开工具,会弹出插件的界面。Talk is cheap. Show me the code.代码如下:using Syst...原创 2020-03-30 17:26:31 · 684 阅读 · 0 评论 -
UnityEditor自定义脚本的Inspector
前言原创 2019-11-25 16:06:27 · 2036 阅读 · 0 评论 -
UnityEditor在编辑器中制作弹窗
代码示例:using UnityEngine;using UnityEditor;public class GetItemsTool : EditorWindow{ int id; [MenuItem("MyTools/GetItem")] static void Init() { GetWindow(typeof(GetItemsToo...原创 2020-03-09 14:25:39 · 3316 阅读 · 0 评论 -
Unity修改Inspector界面的第三方封装类库NaughtyAttributes
中文介绍原创 2020-03-23 15:45:01 · 430 阅读 · 0 评论