1. 程式人生 > >【Unity&人物屬性】人物屬性大量設定用set,get方法還是public成員

【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.

2.

3.

4.