本文链接:https://blog.csdn.net/CJB_King/article/details/72828957 Unity编辑器UnityEditor基础(二) 终极目标 利用学到的东西制作自己的工具...接下来在 Editor 文件夹中创建一个新的 C# 脚本命名为PlayerInspector,引用using UnityEditor命名空间,让PlayerInspector继承自UnityEditor...,代码如下: using UnityEngine; using System.Collections; using UnityEditor; //CustomEditor(typeof())用于关联你要自定义的脚本...[CustomEditor(typeof(Player))] //必须要让该类型继承自Editor,且需要导入UnityEditor程序集 public class PlayerInspector :
本篇博客,马三就来和大家分享一下其中一个比较有趣的需求,RT,“UnityEditor多重弹出窗体与编辑器窗口层级管理”。 ...再进一步我们可以通过反编译UnityEditor.dll来查看一下,他在底层是怎样实现的。...UnityEditor.dll一般位于: X:\Program Files\Unity\Editor\Data\Managed\UnityEditor.dll 路径下面。 ?...EditorWindowBase编辑器窗口基类代码如下: 1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEditor...76 } 最后让我们看一下可重复弹出窗口是如何实现的,代码如下,有了前面的铺垫和代码中的注释相信大家一看就会明白,这里就不再逐条进行解释了: 1 using System; 2 using UnityEditor
UnityEditor.Rendering.HighDefinition.HDRPPreprocessBuild.OnPreprocessBuild (UnityEditor.Build.Reporting.BuildReport...com.unity.render-pipelines.high-definition@10.10.0/Editor/BuildProcessors/HDRPPreprocessBuild.cs:78) UnityEditor.Build.BuildPipelineInterfaces...b__1 (UnityEditor.Build.IPreprocessBuildWithReport bpp) (at :0) UnityEditor.Build.BuildPipelineInterfaces.InvokeCallbackInterfacesPair[T1,T2] (System.Collections.Generic.List
接下来就介绍如何快速复制坐标位置,并且复制 效果: 二、实现 代码: 复制坐标 using UnityEditor; using UnityEngine; public class CopyObjXYZ...: Editor { [UnityEditor.MenuItem("CopyXYZ/CopyXYZ %X")] static void CopyXYZ() {...GameObject obj = UnityEditor.Selection.activeGameObject; if (obj !...复制旋转 using UnityEditor; using UnityEngine; public class CopyRotation : Editor { static void CopyRotation...() { GameObject obj = UnityEditor.Selection.activeGameObject; if (obj !
一、类型 按钮的绘制有很多种: 1.String类型Button: using UnityEngine; using UnityEditor; [CustomEditor(typeof(Test))]...OnInspectorGUI() { GUILayout.Button("按钮"); } } 2.Icon图标类型Button: using UnityEngine; using UnityEditor...EditorGUIUtility.IconContent("PlayButton")); } } 3.String + Icon类型图标: using UnityEngine; using UnityEditor...播放", string.Empty, "PlayButton")); } } 二、样式 Button的样式可以多种多样,下面列举几种样式: using UnityEngine; using UnityEditor...更多样式的预览方法可以查看前面的文章-编辑器开发之GUIStyle 三、大小 可以通过GUILayout.Width及GUILayout.Height来控制大小: using UnityEngine; using UnityEditor
d_UnityEditor.HierarchyWindow 4110793017640982004 d_UnityEditor.InspectorWindow -2667387946076563598...d_UnityEditor.LookDevView 8432421442712342059 d_UnityEditor.ProfilerWindow -1089619856830078684 d_UnityEditor.SceneHierarchyWindow...7966133145522015247 d_UnityEditor.SceneView 2593428753322112591 d_UnityEditor.Timeline.TimelineWindow...1561878555887300916 UnityEditor.ConsoleWindow 111653112392082826 UnityEditor.DebugInspectorWindow...UnityEditor.InspectorWindow -6905738622615590433 UnityEditor.LookDevView -388984143820748079 UnityEditor.ProfilerWindow
Texture2D TextureToTexture2D(Texture texture) { Texture2D texture2d = texture as Texture2D; UnityEditor.TextureImporter...ti = (UnityEditor.TextureImporter)UnityEditor.TextureImporter.GetAtPath(UnityEditor.AssetDatabase.GetAssetPath...(texture2d)); //图片Read/Write Enable的开关 ti.isReadable = true; UnityEditor.AssetDatabase.ImportAsset...(UnityEditor.AssetDatabase.GetAssetPath(texture2d)); return texture2d; } b、运行模式下 /// //
float Weight; } 检视面板显示了Person组件中的三个公开字段: 接下来自定义该组件的检视面板,首先需要在Editor文件夹中创建一个PersonInspector.cs脚本 引入命名空间UnityEditor...后,为该类添加CustomEditor特性,并继承Editor类: using UnityEditor; [CustomEditor(typeof(Person))] public class PersonInspector...: Editor {} 接下来重写OnInspectorGUI方法来自定义我们所需要的内容: 比如在面板上显示一个字符串: using UnityEngine; using UnityEditor;...; GUILayout.Label("Editor Extension..."); } } 再比如在面板上添加一个按钮: using UnityEngine; using UnityEditor
第一种,不带参数实现: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor...就可以使用order参数,如下所示: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor...} } using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor...三、添加菜单栏菜单 代码: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor
DOWN 箭头上下左右 F1-F12 键盘快捷键F1-F12 HOME/END/PGUP/PDDN 对应键盘的Home/End/PageUp/PageDown 三、实例 代码: using UnityEditor...static void EditorCustorkKeys1() { Debug.Log("F1点击执行的指令"); } } 这个就是自定义了一个F1的快捷键指令 using UnityEditor...static void EditorCustorkKeys2() { Debug.Log("Ctrl+Q点击执行的指令"); } } 组合快捷键Ctrl+Q using UnityEditor
using UnityEngine; using UnityEditor; [CustomEditor(typeof(Test))] public class TestEditor : Editor...如果需要点击Toggle开关时来切换boolValue的值,需要boolValue接收GUILayout的返回值: using UnityEngine; using UnityEditor; [CustomEditor...GUILayout.Toggle(boolValue, "开关"); } } 通常我们会使用一个新的bool值来接收返回值,假如值不一样时才进行赋值: using UnityEngine; using UnityEditor
直接贴代码了(C#文件,只要建一个名为Editor的目录 —— 与路径无关,扔进去就行,Unity会自动编译的) using UnityEngine; using UnityEditor; using...System; public class LuaTxtEditor { //http://www.xuanyusong.com/archives/3702 [UnityEditor.Callbacks.OnOpenAssetAttribute....name; //Debug.Log("Open Asset step: 1 (" + name + ")"); return false; } [UnityEditor.Callbacks.OnOpenAssetAttribute
1.Image转RawImage: 代码如下: using UnityEditor; using UnityEngine; using UnityEngine.UI; namespace SK.Framework...EditorUtility.SetDirty(Selection.activeGameObject); } } } 2.RawImage转Image: 代码如下: using UnityEditor...SetDirty以保存 EditorUtility.SetDirty(Selection.activeGameObject); } } } 完整脚本: using UnityEditor
创建脚本GUIStyle.cs 引入UnityEditor命名空间 继承EditorWindow类 实现我们的窗口类。 使用MenuItem创建一个菜单用来打开窗口。...下面为代码,需要放在Editor文件夹中: using UnityEngine; using UnityEditor; namespace SK.Framework { public sealed
下面是最终效果: 首先,自定义一个编辑器面板,需要用到Attribute:CustomEditor,参数传入目标类的类型,代码如下: using UnityEngine; using UnityEditor...} } 自定义编辑器类继承Editor类后,重写OnInspectorGUI函数来自定义Inspector面板,例如添加一个Label文本: using UnityEngine; using UnityEditor...,因此需要通过反射去获取: using System.Reflection; using System.Collections.Generic; using UnityEngine; using UnityEditor...using System.Linq; using System.Reflection; using System.Collections.Generic; using UnityEngine; using UnityEditor...using System.Linq; using System.Reflection; using System.Collections.Generic; using UnityEngine; using UnityEditor
public TestEnum EnumValue = TestEnum.Enum1; } 创建Test类的编辑器类TestEditor 1.滑动条 using UnityEngine; using UnityEditor...Target.floatValue = newFloatValue; } } } 2.各类字段: using UnityEngine; using UnityEditor
shader; 第一个功能,比较简单,在Assets目录下建立“Editor”目录(如果已存在,请忽略),放置 ShaderEditor.cs,代码如下: using UnityEngine; using UnityEditor...; using System; public class LuaTxtEditor { //http://www.xuanyusong.com/archives/3702 [UnityEditor.Callbacks.OnOpenAssetAttribute...(1)] public static bool step1(int instanceID, int line) { return false; } [UnityEditor.Callbacks.OnOpenAssetAttribute
iosPod name="YYModel" version="1.0.4"/> 修改Xcode工程,在Editor中新建一个cs脚本,如下 using UnityEditor...; using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode; using UnityEditor.XCodeEditor; public static...string buildPath) { // 获取Prefix.pch文件 string mPchPath = buildPath + "/Classes/Prefix.pch"; UnityEditor.XCodeEditor.XClass...Pch = new UnityEditor.XCodeEditor.XClass(mPchPath); // 需要插入的代码,例如我们在pch中插入一段引入类的代码 string call...Pch.WriteBelow(mark, call); } 其他Editor中使用到的cs文件 using UnityEngine; using System.IO; #if UNITY_IOS using UnityEditor.iOS.Xcode
2、代码创建(动画控制器)AnimatorController: using System.Collections; using UnityEditor; using UnityEditor.Animations
通过代码控制即可,代码很简单如下: #if UNITY_EDITOR //如果是在编辑器环境下 UnityEditor.EditorApplication.isPlaying = false;...onClick.AddListener(SwitchScene); } void SwitchScene() { #if UNITY_EDITOR //如果是在编辑器环境下 UnityEditor.EditorApplication.isPlaying
领取专属 10元无门槛券
手把手带您无忧上云