iLMS知識社群歷程檔Login
Position: 黃國哲 > Unity
1110822 如何讀取Prefab並修改其內容
by 黃國哲 2022-08-22 12:10:15, Reply(0), Views(729)

雜記:

目標1 = FindObjectsOfType<Transform>(); 可以顯示擁有Transform這個屬性的物件有幾個


/////////////////////////////////////////////////

由於無法更改Prefab的內容,因此不是真的修改內容,而是將內容儲存在快取區,
然後在運行時將其快取區儲存的值傳送到程式內,暫時的替換掉顯示的值,製造出效果。



這裡使用[System.Serializable]和[SerializeField]和
PlayerPrefs.SetString("ThisitemTip", data.itemTip); 
tipinput.text = PlayerPrefs.GetString("ThisitemTip");


這裡的ThisitemTip為自己定義的快取區儲存的檔名。

儲存:
PlayerPrefs.SetString("ThisitemTip", data.itemTip); ,意思是將最後的data.itemTip內容儲存到("ThisitemTip"。

讀取:
tipinput.text = PlayerPrefs.GetString("ThisitemTip");
意思是將"ThisitemTip"的內容輸出到tipinput.text


    public void Edit_BTN()  //編輯按鈕
    {
        //PlayerPrefs.SetString("ThisitemTip", data.itemTip);
        tipinput.text = PlayerPrefs.GetString("ThisitemTip");
    }

data.itemTip是資料原始檔案Prefab;tipinput是文字輸入框,
當按下編輯按鈕,會先儲存 data.itemTip到"ThisitemTip"快取區,
然後輸入文字框內會顯示出"ThisitemTip"的內容





    public void Save_BTN()    //儲存按鈕
    {
        data.itemTip = tipinput.text;   //按下儲存時,輸入文字框的內容會成為data.itemTip的內容
        PlayerPrefs.SetString("ThisitemTip", data.itemTip);  //將data.itemTip儲存到"ThisitemTip"
        tipinput.text = "";                                                    //清空文字輸入框的內容


    }




Reply