http://www.xuanyusong.com/archives/3406

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

C#

1

2

3

4

5

6

7

8

9

10

11

public int width

{

get {

return _width;

}

set {

_width = value;

}

}

[SerializeField]

private int _width;

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

先看看[SerializeField]的含义,它用来序列化一个区域,通俗的来说[SerializeField]可以让private 的属性在Inspector视图中显示出来。。

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

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

TestInspector.cs放在Editor目录下

C#

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

using UnityEngine;

using UnityEditor;

using System.Collections.Generic;

[CustomEditor(typeof(Test))]

public class TestInspector : Editor {

Test model;

public override void OnInspectorGUI(){

model=target as Test;

int width=EditorGUILayout.IntField("Width",model.width);

if(model.width!=width){

model.width=width;

}

base.DrawDefaultInspector();

}

}

Test挂在任意游戏对象上。

C#

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

using UnityEngine;

using System.Collections;

public class Test : MonoBehaviour

{

public int width

{

get {

return _width;

}

set {

Debug.Log("set :" + value);

_width = value;

}

}

private int _width;

}

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

感谢下面好友的留言,另外一种实现的方式,我试了一下也很好用。

https://github.com/LMNRY/SetProperty

  • 本文固定链接: http://www.xuanyusong.com/archives/3406

  • 转载请注明: 雨松MOMO

    2015年01月13日

    于 雨松MOMO程序研究院 发表

转载于:https://blog.51cto.com/kenkao/1673681

【unity】Inspector视图中的get/set使用(四)相关推荐

  1. Unity编辑视图中相机没了?你可能不小心碰到了它

  2. unity在脚本中获取游戏对象有三种_Unity3D中用于删除当前脚本所在游戏对象的代码是:_学小易找答案...

    [单选题]297 . 乙醇的颜色为 [单选题]219 . 下列物质中含有极性共价键的是 [单选题]OnWillCreatAsset( string path) 上面命令的作用是: [填空题]针对单个或 ...

  3. ugui unity 图片缩放循环_Unity基础系列(四)——构造分形(递归的实现细节)...

    点击蓝字关注我们吧! 目录 1 如何构建分形 2 展示内容 3 构造子节点 4 塑造子节点 5 创建多个子节点 6 更多的子节点,更好的代码 7 爆炸性生长 8 添加颜色 9.随机化Mesh 10 使 ...

  4. Unity实用小工具或脚本——可折叠伸缩的多级(至少三级)内容列表(类似于Unity的Hierarchy视图中的折叠效果)

    目录 一.前言 二.实现 2.1.创建ScrollView 2.2.制作层级预设体BaseLevelPartObj 2.3.设置该预设体的初始化处理方法 2.4.读取Hierarchy的内容并创建UI ...

  5. 基于Unity的C#中各类函数使用方法及示例

    以下笔记和示例内容是基于目前自学总结的经验以及观看教学视频的结论和示例,仅记录了较为常用且自认为不好记的方法和小技巧,内容暂时不全待我后期学习慢慢完善,用于学习记录,内容仅作参考,如有错误还请帮忙指正 ...

  6. Dialogue System for Unity文档中英对照版(简雨原创翻译)第五篇(第三方插件拓展)

    接续上面,很遗憾这里开始讲一些第三方插件的使用了,但是我们手头没有这些收费的东东,只可以去官网看下在线的运行效果(国内谁买个全套的,分享下呀) 官网地址在这里 To set up and play t ...

  7. 2d shader unity 阴影_Unity中实现2D光照系统

    在一些 2D 游戏中引入实时光影效果能给游戏带来非常大的视觉效果提升,亦或是利用 2D 光影实现视线遮挡机制.例如 Terraria, Starbound. 2D 光影效果需要一个动态光照系统实现, ...

  8. Unity Hierarchy视图介绍

    Unity Hierarchy视图介绍 题外话:写文章的习惯又兜兜转转捡起来了,希望能帮到更多人吧.. 1.Hierarchy视图总述 如图所示,打开新的Unity项目or创建一个新的Scene时,默 ...

  9. 使用Unity在HoloLens中实现终结者视觉HUD

    詹姆斯·卡梅隆1984年的电影<终结者>引入了我们现在认为理所当然的许多科幻风格.其中最为持久的是热成像平视显示器(HUD),能让观众通过阿诺德斯瓦辛格的T-800角色看到世界.在设计圈里 ...

最新文章

  1. ubuntu下装Source Insight
  2. Java 容器学习之 HashMap
  3. python的语言是什么歌_用python对歌词进行语言分析
  4. 用three.js写一个简单的3D射门游戏
  5. java系统项目分为哪五大层次?控制层_业务_一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构-转...
  6. Spring-Boot (四) 集成Spring Security
  7. PHP 中和 HTTP 相关的函数及使用
  8. gson下载java_gson.jar
  9. html2json文档,插件 jQuery.json2html 中文 API 文档
  10. ApiPost、Postman及并发测试工具Jmeter、PostJson接口测试工具,设置参数传递。
  11. Knowledge Reasoning 复习
  12. SQL*Plus 系统变量之59 - VER[IFY]
  13. 《求职》第四部分 - 操作系统篇 - Linux基础
  14. (83)FPGA减法器设计(多位减法器)
  15. 基于ngc的cuda镜像封装TensorFlow 实例
  16. 西普实验吧CTF-约瑟夫环
  17. Ubuntu数据备份与恢复工具(一)
  18. xshell启动报nssock2_nssock2.dll下载|
  19. ubuntu18.04系列2—桌面美化(gnome)
  20. SSO 是 什 么?

热门文章

  1. NIPS放榜:谷歌占1/10,微软DeepMind打平,中国小哥4篇一作全球领先
  2. 你的广告能打几分?Kaggle需求预测挑战赛冠军方案这样做丨教程
  3. 神秘七年、融资23亿美元,Magic Leap终于发售首款产品,被吐槽full of shit
  4. Test.ai完成1100万美元A轮融资,Google人工智能基金领投
  5. 一架无人机加入警队4个月,墨西哥小城犯罪率下降了10%
  6. 程序员社区骂战:不满政治正确,LLVM元老宣布退出
  7. 中国人工智能学会最高荣誉CAAI Fellow出炉,首批53位大牛,姚期智谭铁牛等入选
  8. 2019春运大幕即将开启 西安动车列车员整装迎春运
  9. 于是,我们给前端分享会定义了一个未定义的名字
  10. php随机数怎么获取?一个简单的函数就能生成