【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 的方法

【Unity&人物属性】人物属性大量设置用set,get方法还是public成员_第1张图片【Unity&人物属性】人物属性大量设置用set,get方法还是public成员_第2张图片


这个时候为什么都是 0 呢,因为 A.cs没有直接赋值,就使得 B物体的B.cs数值没有改变


这样改,就行了。这就是为什么很多 查找物体,以及很多 被调用 的数值 在Awake函数里面初始化的原因。

在函数Start里面调用自身使用的 变量  初始化 的原因。

【Unity&人物属性】人物属性大量设置用set,get方法还是public成员_第3张图片

----------------------------------------------------------------------------------------------------------------------------------------

使用set,get方法


1.使得set方法私有化private 获得A的数值

B.cs只是把红色方框内的A_num改为了_A_num

【Unity&人物属性】人物属性大量设置用set,get方法还是public成员_第4张图片


1.1把初始化放在start函数

【Unity&人物属性】人物属性大量设置用set,get方法还是public成员_第5张图片

1.2把初始化放在awake函数

【Unity&人物属性】人物属性大量设置用set,get方法还是public成员_第6张图片

2.使得set方法私有化private 改变A的数值

【Unity&人物属性】人物属性大量设置用set,get方法还是public成员_第7张图片

会出错,因为A.cs 的_A_num的set方法为私有private。


设置 公有public set 方法

【Unity&人物属性】人物属性大量设置用set,get方法还是public成员_第8张图片

【Unity&人物属性】人物属性大量设置用set,get方法还是public成员_第9张图片

----------------------------------------------------------------------------------------------------------------------------------------

总结:

当很多变量要使用到同一个对象,如果很多个脚本都要调用,修改这个 对象数值,使用私有private set方法,就可以使其仅在自身的脚本中修改,从而避免出现

“牵一发动全身”的问题。

那么什么情况要用到私有private set 方法,比如游戏设置,游戏难度设置等情况

----------------------------------------------------------------------------------------------------------------------------------------

参考资料:

1.

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

2.

Unity3D心得之游戏架构设计和属性的运用

3.

使用Unity3D编写ARPG游戏——角色属性的定义与实现(一)

4.

你可能感兴趣的:(Unity,Unity精灵,Unity对象,Unity经验,代码分析)