unity 如何獲取button文本的內容

如下就可以獲取button中的文本內容

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
public class ButtonContent : MonoBehaviour{
     public Button btn;
     void Start(){
         btn = GameObject.Find("填寫button名").getComponent<Button>(); //-----------(1)
         Text text = btn.transform.Find("Text").getComponent<Text>(); //------------(2)
         //或者吧(1)(2)合並成:
         //  Text text = GameObject.Find("填寫button名/Text").getComponent<Text>();
         Debug.Log(text.text.toString());
         //其實就一條語句
  //     Debug.Log(GameObject.Find("填寫button名/Text").getComponent<Text>().text.toString());
     }
}

補充:Unity獲取任意GameObject下節點Text、Button等組件

核心隻有一句:

Text/Button compo=GameObject.Find("任意button/text節點名稱").GetComponent();

或者:

Text text = gameobject.transform.Find("Text名稱").GetComponent();

補充:Unity3D如何修改Button顯示的文字以及深入瞭解Button組件

在創建瞭一個Button後,結構如圖:

先仔細觀察一下Button的Inspector視圖:

發現其中竟然有一個叫Button的腳本組件.

新建腳本,代碼如下,並將該腳本綁定給Canvas組件:

using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine;
public class btn1 : MonoBehaviour
{
    // Start is called before the first frame update
   public Button btn;
    void Start()
    {
    }
    // Update is called once per frame
    void Update()
    {
        GameObject go = GameObject.Find("Butt");
        Text text=go.GetComponentInChildren<Text>();
        text.text="天桑在玩CSGO";
        Debug.Log(text.text);
    }
}

1.首先通過GameObject.Find()找到名字為Butt的遊戲物體.

2.通過GetComponentInChildren()獲得子目錄下類型為T的組件.

(這裡我之前用GetComponent試過不行,是因為Button的Text在子目錄下)

3.我們還可以獲得Button組件:

 GameObject go = GameObject.Find("Butt");
        Button button=go.GetComponent<Button>();
        if(button)Debug.Log("找到這個按鈕瞭!");

這兩段代碼合並後的輸出結果為:

這表明這兩個組件都找到瞭.

這樣一看,Button的結構就很清楚瞭,Button在第一級目錄上,附帶生成的Text在子目錄上.

實驗結果符合預期:

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀:

    None Found