首页 > Unity3D频道 > 【Unity3D拓展编辑器】 > Unity3D研究院之Inspector视图中的get/set使用(四)
2015
01-13

Unity3D研究院之Inspector视图中的get/set使用(四)

get set 使用起来很方便,但是编辑时在Inspector视图中问题就来了,因为get/set的属性即使是public了,但是在Inspector视图中依然不显示。。谷歌一下估计就是下面这样的答案。

如下图所示问题又来了,因为在编辑模式下修改Width的值,但是代码中的 set 压根就没执行。。

Unity3D研究院之Inspector视图中的get/set使用(四) - 雨松MOMO程序研究院 - 1先看看[SerializeField]的含义,它用来序列化一个区域,通俗的来说[SerializeField]可以让private 的属性在Inspector视图中显示出来。。

那么上面的set没执行的原因就出来了,因为我们改的是private _width并不是 public width。由此可见此段代码在编辑模式下是毫无用处的。。

我偏偏就想在编辑时响应 set 的操作怎么办?我想做的是在set里面加一个自己写的方法。

TestInspector.cs放在Editor目录下

Test挂在任意游戏对象上。

如下图所示,在编辑模式下用鼠标修改width的值。 log输出了说明 get set 已经响应了。

Unity3D研究院之Inspector视图中的get/set使用(四) - 雨松MOMO程序研究院 - 2感谢下面好友的留言,另外一种实现的方式,我试了一下也很好用。

https://github.com/LMNRY/SetProperty

 

 

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。