解决在自定义编辑器下,无法用Inspector面板的赋值作为参数显示Gizmos的问题

之前在给策划童鞋写一个小脚本,为了让他们使用时能很快了解用法,自定义了编辑器,重写了一下脚本的inspector面板布局和显示逻辑。

但发现一个问题,就是一旦自定义了Editor,Gizmo的绘图包含通过编辑器赋值的参数就不能使用了。也就是说,假如我想Gizmos.DrawLine(from * param, to * param);其中 param 为编辑器赋值参数,这时Gizmo会一直使用默认值。

我想这也很好理解,扩展的东西Gizmo当然是不知道的。于是google了一下,几经波折(主要是没发现和我的问题一样的,但发现了自己Handle Gizmo的方法)。

最终解决版本如下:

1 [DrawGizmo(GizmoType.Selected | GizmoType.SelectedOrChild)]
2 private static void HandleMyGizmo(Transform aTransform, GizmoType aType){
3        // 这时,你想干什么都可以了!
4        // 可以获取其他编辑器赋值好的序列化属性用于Gizmos
5        // 但需要注意 这个方式是全局的 需要检测一下你特定的脚本
6 }

效果还不错,只是需要选中物体才会显示,当然有童鞋也可以添加GizmoType.NotSelected 实现和Gizmos一样的效果

时间: 2024-10-07 04:07:34

解决在自定义编辑器下,无法用Inspector面板的赋值作为参数显示Gizmos的问题的相关文章

关于Unity3D自定义编辑器的学习

被人物编辑器折腾了一个月,最终还是交了点成品上去(还要很多优化都还么做).  刚接手这项工作时觉得没概念,没想法,不知道.后来就去看<<Unity5.X从入门到精通>>中有关于自定义编辑器(自定义Inspector和自定义Scene或GUI)的一些例子,还包括看了 雨松的编辑器教程 和 自定义结构显示在Inspector的方法 看完之后也实战了一下就算入了门,就分析自己项目的人物对应的数据,如下图: 上述数据其实很简单但是对于我这种初学者来说就有点难度,首先因为Actions 和

python解决导入自定义库失败: ModuleNotFoundError: No module named &#39;MyLib&#39;

python安装目录:...\python_3_6_1_64bit 新建文件:chenyeubai.pth,写入库所在的绝对路径E:\workSpace\my_code\learn\myLib 安装路径下的.pth文件会在运行时将文件中路径写入path python解决导入自定义库失败: ModuleNotFoundError: No module named 'MyLib' 原文地址:https://www.cnblogs.com/chenyuebai/p/8416706.html

XE6移动开发环境搭建之IOS篇(5):解决Windows和虚拟机下Mac OSX的共享问题(有图有真相)

XE6移动开发环境搭建之IOS篇(5):解决Windows和虚拟机下Mac OSX的共享问题(有图有真相) 2014-08-20 20:28 网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的内容.傻瓜式的表达来告诉你想要的答案. 在安装XE6 PAServer前,我们先解决Windows和虚拟机下Mac的文件共享问题,由于虚拟机和我们安装的XE6是同一台电脑,所以此问题很好解决.网上相传有很多的共享大法,但是在WIN7这种权限管制得过份的系统下显得相对复杂了,

解决php 5.4下dedecms登陆后台空白,标题不能为空错误

这两天有人反应新版的php-fpm的php版本为5.4.7对dedecms5.6兼容性不好. dedecms安装完成后会出现登陆后台空白,发布文章时提示"标题不能为空". 1.解决dedecms登陆后台空白错误因为php5.4的版本废除了session_register,所以需要去掉session_register函数 修改:"include/userlogin.class.php",注释掉session_register,修改后如下//@session_regis

解决Xilinx_ISE在Win8下打开崩溃闪退的方法

解决Xilinx_ISE在Win8下打开崩溃闪退的方法 在64位windows8或者8.1上安装xilinx ise之后,加载 licence或者保存文件的时候,ise应用程序就会崩溃,出现闪退的情况. 修复方法: 第一步: 找到xilinx安装文件下的子文件,我的是安装在D盘. [plain] view plaincopy D:\Xilinx\14.4\ISE_DS\ISE\lib\nt64 在这个文件夹中搜索文件 libPortability 会出来两个文件 [plain] view pla

解决IE和firefox 下flash盖住div的问题(转载)

原文地址:http://www.oschina.net/question/171410_26563 做的企业站 顶部是flash的滚动图片. 右侧是在线客户,但是flash盖住了在线客户的div 网上搜索解决方法如下: <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/

如何解决Windows 10系统下设备的声音问题

如何解决Windows 10系统下设备的声音问题? 请阅读下面的说明来解决Windows 10设备上的声音问题. 1. 检查设备管理器 打开开始菜单,键入设备管理器, 从出现的结果中选择并打开它. 在声音.视频和游戏控制器栏目下, 选择并打开你的声卡 . 选择 驱动程序 一栏, 并选择 更新驱动程序. 如果系统没有找到新的驱动,可以尝试在ASUS官网寻找驱动. 如果上述步骤无效,尝试重装声卡驱动: 打开 设备管理器, 右击声卡驱动, 选择 卸载. 重启电脑,系统就会自动尝试重装声卡驱动. 如果无

Unity 编辑器下控制粒子播放跟随位移

在之前的文章<Unity 编辑器下控制播放粒子>讲到在Unity编辑器的Scene视图进行控制播放粒子ParticleSystem,但是当这个粒子是挂载在人物身体部位的时候,会有可能出现不跟随位移的情况.查找原因,发现是 Resimulate 被勾选中了,这个选项是指当粒子参数改变时,立即更新粒子效果.要让粒子也能跟随移动,必须将这个选项取消掉. 可以简单的在编辑器下,取消掉这个选项,如下: 但是,对于其他人员可能不知道这个原因,手动设置不够智能,需要进一步在代码中主动控制.操纵这个选项,需要

解决QT5.3.1下触控笔无法工作的问题

刚进新公司,据开发人员说存在QT5.3.1下触控笔无法工作,而在QT5.2.1下能正常工作,研究了一下. Steps: 1. 首先当然是看下问题是否真的存在.测试情况: 环境 结果 备注 QT5.2.1, win 8.1 32bit, mingw 触控笔正常工作 QT5.3.1, win 8.1 32bit, mingw 触控笔无法工作 用手指可以正常触控 2. 目前的情况来看应该是QT发布QT5.3.x时引入的新BUG,决定到QT-PROJECT上的BUGREPORTS搜下是否已经有此BUG,