2013-03-12 193 views
1

我想在單擊按鈕時在按鈕上打印一個值。它可能如何?如何在單擊按鈕時在按鈕上打印值?

[更新]

using UnityEngine; 
using System.Collections; 
public class tic : MonoBehaviour 
{ 
    void OnGUI() { 
     string value=""; 
     if(GUI.Button(new Rect(10,10,50,50),value)) { 
      value="y"; 
      print ("y"); 
      GUI.Button(new Rect(10,10,50,50),value); 
     } 
    } 
} 
+0

請參閱[統一GUI腳本編寫指南(http://docs.unity3d.com/Documentation/Components/GUIScriptingGuide.html),還有的要在他們表現出的第一個例子是什麼一個例子。 – Jerdak 2013-03-12 16:53:37

+0

但它不是在按鈕上打印,而是在屏幕的左下方打印。 – 2013-03-12 16:58:39

+1

所以我很清楚,你想點擊一個按鈕,讓文本顯示在按鈕本身上? – Jerdak 2013-03-12 17:05:30

回答

1

適應的Unity gui example您可以通過存儲在一個變量,文本,改變它單擊按鈕時修改按鈕上的文字,就像這樣:

using UnityEngine; 
using System.Collections; 

public class GUITest : MonoBehaviour { 
    public string ButtonText = "Click Me" 
    void OnGUI() { 
     if (GUI.Button (new Rect (10,10,150,100), ButtonText)) { 
      ButtonText = "Huzzah!"; 
     } 
    } 
} 

該按鈕將首先閱讀爲「Click Me」,然後將更改一次爲「Huzzah」。

如果你不想改變按鈕中的實際文字,它會變得更加困難。您需要創建一個位於按鈕上方的標籤,我不建議使用此路線。它不會看起來不錯,標籤不會移動w /按鈕:

using UnityEngine; 
using System.Collections; 

public class GUITest : MonoBehaviour { 
    public bool DrawLabel = false; 
    public string LabelText = "Huzzah" 
    void OnGUI() { 
     if (GUI.Button (new Rect (10,10,150,100), "Click Me")) { 
      DrawLabel = true; 
     } 
     if(DrawLabel){ 
      // use the same rect parameters as you did to create the button 
      GUI.Label (new Rect (10, 10, 150,100), LabelText); 
     } 
    } 
} 
+0

我已經試過了,它也沒有工作。 – 2013-03-12 17:18:30

+0

@RajeshKumar什麼是不正確的工作?如果您的原始問題包含屏幕截圖或代碼或其他內容,以表明您希望的行爲與您所看到的行爲,可能會有所幫助。 – Jerdak 2013-03-12 17:20:46

+0

最初我有一個null值的按鈕。單擊該按鈕後,應該在按鈕本身上打印一些值。 – 2013-03-12 17:25:00

0

你可以這樣做;

var ControlsButton = GameObject.Find("ControlsButton"); 
ControlsButton.GetComponentInChildren<Text>().text = "Accelerometer"