【Unity人物属性】人物属性大量设置用set,get方法还是public成员
当使用到设置人物属性的时候,使用set,get方法还是 直接把 人物属性 设置 为 public成员
本文没有描述SendMessage方法和使用单例。
----------------------------------------------------------------------------------------------------------------------------------------
首先了解set,get的使用方法
第一种
public PlaneType type{get;private set;} 来自 参考资料2
第二种
public int width
{
get {
return _width;
}
set {
Debug.Log("set :" + value);
_width = value;
}
}
private int _width;
来自 参考资料1
直接使用public
在A.cs设置声明
public int num;
初始化
num = 10;
在B.cs中使用A.cs的对象,首先这个A.cs 要实例化
意思是在A物体挂载A.cs,B物体挂载B.cs才能够使得B.cs调用A物体的 A.cs
当然,不同物体的挂载多个A.cs,B可以对这些不同物体的挂载多个A.cs都可以调用。只要 程序员自己清楚。
B物体挂载B.cs才能够使得B.cs调用A物体的 A.cs,该怎么在B.cs中使用呢
第一步,要找到被调用的物体
B物体挂载B.cs要找到A物体的 A.cs的A物体
第二步,对其进行调用
使得B物体挂载B.cs 的数值等于 A物体的 A.cs的数值
----------------------------------------------------------------------------------------------------------------------------------------
直接调用public 的方法
这个时候为什么都是 0 呢,因为 A.cs没有直接赋值,就使得 B物体的B.cs数值没有改变
这样改,就行了。这就是为什么很多 查找物体,以及很多 被调用 的数值 在Awake函数里面初始化的原因。
在函数Start里面调用自身使用的 变量 初始化 的原因。
----------------------------------------------------------------------------------------------------------------------------------------
使用set,get方法
1.使得set方法私有化private 获得A的数值
B.cs只是把红色方框内的A_num改为了_A_num
1.1把初始化放在start函数内
1.2把初始化放在awake函数内
2.使得set方法私有化private 改变A的数值
会出错,因为A.cs 的_A_num的set方法为私有private。
设置 公有public set 方法
----------------------------------------------------------------------------------------------------------------------------------------
总结:
当很多变量要使用到同一个对象,如果很多个脚本都要调用,修改这个 对象数值,使用私有private set方法,就可以使其仅在自身的脚本中修改,从而避免出现
“牵一发动全身”的问题。
那么什么情况要用到私有private set 方法,比如游戏设置,游戏难度设置等情况
----------------------------------------------------------------------------------------------------------------------------------------
参考资料:
1.
Unity3D研究院之Inspector视图中的get/set使用(四)
2.
Unity3D心得之游戏架构设计和属性的运用
3.
使用Unity3D编写ARPG游戏——角色属性的定义与实现(一)
4.
【Unity人物属性】人物属性大量设置用set,get方法还是public成员相关推荐
- Unity资源导入自动化设置
Unity资源导入自动化设置 简介 具体实现 新的问题 解决方法 简介 大家都知道,在Unity中导入的资源不同类型有不同的设置, 例如:模型文件导入之后是这样的 当导入数量少的时候我们可以手动去改, ...
- unity导入的模型设置详谈(后面动作)
此次咱们以2018版本为例,其他版本也差不多,有需要可以下方评论,我告诉大家对应的设置在哪,怎么设置. 咱们先讲Model这一栏 Scene:场景级属性,例如是否导入灯光和照相机,以及使用什么比例因子 ...
- Unity编写Shader内置各种矩阵和方法介绍
返回目录 大家好,我是阿赵. 这里记录一下Unity编写Shader内置各种矩阵和方法 一.Unity内置转换矩阵 1.MVP类矩阵 UNITY_MATRIX_MVP:Current model * ...
- Unity最新版打包AssetBundle和加载的方法
一.设置assetBundleName 二.构建AssetBundle包 三.上传AssetBundle到服务器 四.把AssetBundle放到本地 五.操作AssetBundle 六.完整例子 七 ...
- unity当前项目里面AssetBundle和加载的方法总结
2017年10月14日 19:24:14 醉忘天涯一线天 阅读数:9021 出处:https://blog.csdn.net/lmyfx/article/details/78236225 版权声明:本 ...
- 关于UNITY中System.Drawing引用失败的处理方法
关于UNITY中System.Drawing引用失败的处理方法 今天在使用EPPlus中,遇到一个处于This type has been forwarded to assembly 'System. ...
- Unity场景内模型出现粉色的处理方法
Unity场景内模型出现粉色的处理方法 Unity 场景内出现粉色Shader的处理方法 0 丢失材质或者渲染文件丢失表现 1 查看Shader类型 1.1 查看后是URP的Shader 2 查看是否 ...
- Unity 3D Text字迹模糊问题的解决方法
Unity 3D Text字迹模糊问题的解决方法 https://blog.csdn.net/sarsscofy/article/details/85096994 Unity 3D Text显示比较鸡 ...
- 关于Unity的版本控制工具PlasticSCM的初步使用方法
作为Unity初学者,同时作为编程的初学者,之前没有怎么接触过多人协作的版本控制系统.一开始我们尝试使用git进行版本控制,但是作为小白的我们没有马上找到进行文件的传出.传入等操作的方便的方式.于是我 ...
最新文章
- TensorFlow csv读取文件数据(代码实现)
- 这个能快速发表Cell,Nature,Molecular cell的分析技术你要错过吗?
- 算法设计与分析 贪心算法
- python里面对文件的读写操作
- 在双向链表存储结构中,删除p所指的结点时,须修改指针()【选择题】
- jQuery 输入框 在光标位置插入内容, 并选中
- 一个内核网络漏洞详解|容器逃逸
- android 中文 api (72) —— BluetoothSocket[蓝牙]
- cheatengine找不到数值_“不会找问题”,只配在底层,最高效的思维方式导图,人生开挂!...
- 一起开心寒假训练总复习
- LeetCode 1038. 从二叉搜索树到更大和树(逆中序-右根左-降序)
- 获取含有class为某个值的a标签或img标签
- Windows系统下快速安装、配置Aira2,及图形界面配置、度盘、B站视频下载
- 雷电2接口_Steinberg 发布旗舰级 32 bit / 384 kHz 雷电 2 音频接口 AXR4
- 开放式虚拟仿真实验服务器,润尼尔开放式虚拟仿真实验教学及资源共享平台
- 全国多省市遭暴雪袭击!这些路段交通受阻!
- 【总结】知识点巩固------Linux命令总结
- 如何在纯HTML的静态网页中添加一段统计网页访问量的JAVA Script代码?
- 【转载】Cygwin安装
- (C语言)实现strcpy
热门文章
- durbin watson检验表_Durbin-Watson自相关检验应用问题探讨
- (++a)+=(a++)和(++a)=(++a)+(a++)的区别
- 客户端GUI测试技术和自动化测试架构设计简谈
- 【笔记-node】《imooc-nodejs入门到企业web开发中的应用》
- 给计算机主机吹灰,电脑主机多久清理一次灰合理一些?一点小建议给你
- 测试计划及方案怎么写?
- 法院判了!耿美玉起诉饶毅名誉侵权,驳回请求!但对饶毅方也应给予批评......
- 港科校友 | 香港科大EMBA刘礼华校友获评俄罗斯自然科学院院士
- 【ESP32_8266_MQTT篇】
- 小学计算机集体听课评课,小学听课评课活动总结