Unity自定义编辑器界面(Inspector).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unity自定义编辑器界面(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 应用修改的属性 效果

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档