最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

unity3d游戏开发之Unity自定义编辑器界面

来源:动视网 责编:小OO 时间:2025-09-30 01:33:41
文档

unity3d游戏开发之Unity自定义编辑器界面

好吧,我承认自己是个强迫症患者,在做项目的时候发现脚本的Inspector面板上暴露的密密麻麻的变量头皮一阵发麻~~~举个例子比如我要写一个Enemy的类,我希望这个Enemy里面包括了所有的敌人类型,比如飞机坦克等等。但是由于类型不同,他们的一直变量类型也不同,比如坦克的变量类型可能有移动速度,子弹类型,或者其他的,飞机的变量类型有飞行速度,等等。如果不加整理那么在Inspector面板就会暴露出密密麻麻的变量不仅头晕,而且不利于调试。其实就是我强迫症发作了,我只想面板显示我想要的东西。好吧
推荐度:
导读好吧,我承认自己是个强迫症患者,在做项目的时候发现脚本的Inspector面板上暴露的密密麻麻的变量头皮一阵发麻~~~举个例子比如我要写一个Enemy的类,我希望这个Enemy里面包括了所有的敌人类型,比如飞机坦克等等。但是由于类型不同,他们的一直变量类型也不同,比如坦克的变量类型可能有移动速度,子弹类型,或者其他的,飞机的变量类型有飞行速度,等等。如果不加整理那么在Inspector面板就会暴露出密密麻麻的变量不仅头晕,而且不利于调试。其实就是我强迫症发作了,我只想面板显示我想要的东西。好吧
好吧,我承认自己是个强迫症患者,在做项目的时候 发现脚本的Inspector面板上暴露的密密麻麻的变量头皮一阵发麻~~~

举个例子 比如我要写 一个 Enemy的类,我希望这个Enemy里面包括了所有的 敌人类型,比如 飞机 坦克等等。

但是由于类型不同,他们的一直变量类型也不同,比如 坦克的 变量类型可能有 移动速度,子弹类型,或者其他的,飞机的变量类型有飞行速度,等等。

如果不加整理 那么在Inspector 面板就会暴露出密密麻麻的 变量 不仅头晕,而且不利于调试。

其实就是我强迫症发作了,我只想面板显示我想要的东西。

好吧 下面开始

首先 我新建一个 test1 脚本 C#

这篇文章来自狗刨学习网

我们的目标是通过枚举类型来定义当前物体的类型。如果m_type是 player,那么就显示 playerlife;如果是 enemy 就显示enemylife。

下面我们需要写一个脚本去重写Inspector界面。

新建一个文件夹 命名为 Editor 因为我们需要  using unityEditor 而是用这个的脚本必须在名字为Editor 的文件下。

在Editor 文件下创建一个C#新脚本 名字随意 我的叫 Inspector_test1 

首先 头部 加入 using UnityEditor 

[CunstomEditor(typeof(test1))]

继承改为 Editor 

首先我们要序列化一个物体 就是说脚本会附在一个Object上  还有脚本的变量  

在OnEnable() 里面 初始化 Objcet对象 抓取脚本里面的属性

然后 再重写 OnInspectorGUI()  

首先是更新脚本的信息

test.Update();

然后显示枚举类型变量 m_type 这个变量是一定要暴露出来的 因为通过它来定义这个物体的属性 是player 还是 enemy 

EditorGUILayout.propertyField(m_type);

然后 我们来判断这个m_type是哪个值 是player 还是enemy. 

我们通过 SerializedProperty.enumValueIndex 枚举值索引 来检索当前枚举类型的变量值是哪个  例如在 type 枚举类型里面 player 的枚举值索引下标为 0 enemy  的枚举值索引下标为 1

这样 我们通过判断 m_type 的 枚举下标的值就可以推断出 当前值的哪一个,进而进行相关的操作了。

最后,通过

SerializedObject.ApplyModifiedProperties 应用修改的属性

效果 

文档

unity3d游戏开发之Unity自定义编辑器界面

好吧,我承认自己是个强迫症患者,在做项目的时候发现脚本的Inspector面板上暴露的密密麻麻的变量头皮一阵发麻~~~举个例子比如我要写一个Enemy的类,我希望这个Enemy里面包括了所有的敌人类型,比如飞机坦克等等。但是由于类型不同,他们的一直变量类型也不同,比如坦克的变量类型可能有移动速度,子弹类型,或者其他的,飞机的变量类型有飞行速度,等等。如果不加整理那么在Inspector面板就会暴露出密密麻麻的变量不仅头晕,而且不利于调试。其实就是我强迫症发作了,我只想面板显示我想要的东西。好吧
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top