码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-15 12:11:46      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

之前在给策划童鞋写一个小脚本,为了让他们使用时能很快了解用法,自定义了编辑器,重写了一下脚本的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一样的效果

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

标签:

原文地址:http://www.cnblogs.com/ninja9998877/p/4339032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!