热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

unityEditor自定义Inspector面板

效果图:代码展示:usingUnityEngine;usingUnityEditor;[CustomEditor(typeof(MapOperati

效果图:
在这里插入图片描述
代码展示:

using UnityEngine;
using UnityEditor;[CustomEditor(typeof(MapOperation))]
public class MapOperationEditor : Editor
{public override void OnInspectorGUI(){// DrawDefaultInspector();MapOperation myScript = (MapOperation)target;bool allowSceneObjects = !EditorUtility.IsPersistent(target);#region 输出世界坐标//if (myScript.tempObj == null)// GUI.color = Color.red;//else// GUI.color = Color.white;//myScript.tempObj = (Transform)EditorGUILayout.ObjectField("输出物品世界坐标", myScript.tempObj, typeof(Transform), allowSceneObjects);//GUI.color = Color.white;//if (GUILayout.Button("输出"))//{// if (myScript.tempObj == null) return;// Debug.Log(myScript.tempObj.position);//}//EditorGUILayout.Space();//EditorGUILayout.Space();//EditorGUILayout.Space();#endregion#region 重命名属性myScript.nameByPos = EditorGUILayout.Toggle("是否根据坐标位置命名", myScript.nameByPos);myScript.IsMapEditor = EditorGUILayout.Toggle("是否用于地图编辑器命名", myScript.IsMapEditor);myScript.index = EditorGUILayout.IntSlider("方格在父物体下的层次数", myScript.index, 1,2 );if (myScript.Parent == null)GUI.color = Color.red;elseGUI.color = Color.white;myScript.Parent = (Transform)EditorGUILayout.ObjectField("重命名物体父物体", myScript.Parent, typeof(Transform), allowSceneObjects);if (myScript.nameByPos){if (myScript.startTrans == null)GUI.color = Color.red;elseGUI.color = Color.white;myScript.startTrans = (Transform)EditorGUILayout.ObjectField("XZ为二维坐标轴的第一个格子", myScript.startTrans, typeof(Transform), allowSceneObjects);//if (myScript.X == -100)// GUI.color = Color.red;//else// GUI.color = Color.white;//myScript.X = EditorGUILayout.DoubleField("方格起始点X坐标", myScript.X);//if (myScript.Z == -100)// GUI.color = Color.red;//else// GUI.color = Color.white;//myScript.Z = EditorGUILayout.DoubleField("方格起始点Z坐标", myScript.Z);if (myScript.size == new Vector2Int(0, 0))GUI.color = Color.red;elseGUI.color = Color.white;myScript.size = EditorGUILayout.Vector2IntField("方格规格", myScript.size);} GUI.color = Color.white;if (GUILayout.Button("重命名")){if (myScript.size == new Vector2Int(0, 0)/* || myScript.X==-100|| myScript.Z == -100*/||myScript.Parent == null||myScript.startTrans==null) return;myScript.Rename();}EditorGUILayout.Space();EditorGUILayout.Space();EditorGUILayout.Space();#endregion#region 剔除格子if (myScript.DeleteConfig == null)GUI.color = Color.red;elseGUI.color = Color.white;myScript.DeleteConfig = (TextAsset)EditorGUILayout.ObjectField("剔除格子数据表", myScript.DeleteConfig, typeof(TextAsset), allowSceneObjects);GUI.color = Color.white;if (GUILayout.Button("剔除格子")){if (myScript.DeleteConfig == null) return;myScript.DeleteNullGrids();}EditorGUILayout.Space();EditorGUILayout.Space();EditorGUILayout.Space();#endregion}}

其中MapOperation就是自定义面板的脚本,需要继承自MonoBehaviour

注:字体有点丑,暂时没找到更换字体和颜色得解决方案 找到在更新


推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • Java图形化计算器设计与实现
    本文介绍了使用Java编程语言设计和实现图形化计算器的方法。通过使用swing包和awt包中的组件,作者创建了一个具有按钮监听器和自定义界面尺寸和布局的计算器。文章还分享了在图形化界面设计中的一些心得体会。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
author-avatar
个信2502907653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有