首页 > 其他 > 详细

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

时间:2015-03-15 12:10:22      阅读:280      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!