600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Unity 编辑器扩展 场景视图内控制对象

Unity 编辑器扩展 场景视图内控制对象

时间:2022-01-23 01:39:50

相关推荐

Unity 编辑器扩展 场景视图内控制对象

/akof1314/article/details/38129031

假设有一个敌人生成器类,其中有个属性range用来表示敌人生成的范围区域大小,那么可以用OnDrawGizmos函数来绘制它在场景视图所代表的区域大小,便于开发调试。这个敌人生成器类,类似如下:

可以在场景视图看到,当未选中改对象时,为绿色边框表示区域大小,当选中时,则为黄色。如下图所示: 未选中:

选中:

如何直接在场景视图进行调整区域的大小呢,即直接调整range值,而不用在检视器里进行设置。这可以用控制柄来达到,即Handles类。创建一个编辑器扩展类,代码如下: 现在可以在场景视图里看到这个对象边框各有一个球体,进行拉动球体,可以看到区域大小值range进行变化了,如下图所示:

现在用控制柄改变的range值,无法进行撤销,这样就无法进行回滚操作,为其添加撤销功能,代码更改为如下: 现在再次进行拉动,即可在Edit→Undo下看到撤销信息了,如下图所示:

对其他人来讲,可能看到这些球体,不知道是可以拖动的,也不明白拖动它之后会产生什么样的效果,那么,如果能够在鼠标移动到球体上面的时候,能够提示出这些信息就好了。这里,增加下鼠标在球体上时,鼠标箭头会变化成带缩放提示的图标,代码更改为如下: 这里只是模糊地计算了下球体控制柄的响应范围。现在可以在场景视图看到每个球体都有一个矩形包围着,当鼠标进入到这个矩形里面,就会改变鼠标图形,如下图所示:

现在可以把调试绘制矩形框的给删除掉了,即删除以下代码:参考资料:

1.Unity3D研究院之拓展Scene视图(三)/archives/2303 2.Unity3D 场景编辑器扩展学习笔记-Handles&Event/kun1234567/article/details/19477787

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。