2017-02-04 3 views
1

私は、クライアントによってインスタンス化される小さなアプリケーションを作成しています。私のアプリケーションでは、2つのクラスMessageQueueSingleton.csとDataObject.csがあります。Unityのボタン動作

MessageQueueSingletonは、DataObjectクラスのオブジェクトの静的ディクショナリを含むシングルトンクラスです。 MessageQueueSingletonには、クライアントからの指示に従ってDataObjectクラスの属性を操作するいくつかのメソッドがあります。

私の問題は、MessageQueueSingletonのいくつかのメソッドを呼び出すことができるUnity GUIも必要です。つまり、UIのボタンを押すと、メソッドがMessageQueueSingletonから呼び出されます。

私は統一プログラミングを初めて学んだので、スクリプトをボタンに接続する方法を示す例を見ようとしましたが、 "Inspector"のonClick()セクションでは自分のメソッドを見ることができません。私はUnity 5.5.1f1を使用しています

これを行うプロセスを記述している小さな例やリンクが参考になります。

ありがとうございました。

void Start() { 
    var button = GameObject.Find("GameObjectWithMyButton").GetComponent<Button>(); 
    button.onClick.AddListener(MyMethod); 
} 

void MyMethod() { 
    // Do something when button is clicked. 
} 

そして、あなたがドラッグしたい場合&はそれを選択します。そのボタンのリスナーと方法を設定するには、次のコードでスクリプトコンポーネントを追加することができますButtonコンポーネントを使用してゲームオブジェクトにButton inspector doesn't show public method

答えて

1

インスペクタで、GUIオブジェクトをクリックするとインスペクタのボタンで選択したいメソッドがpublicメソッドであることを確認してください! Inspector Button Onclick GUIでスクリプトのパブリックメソッドを表示するには、スクリプトをGameObjectに配置し、そのオブジェクトをGUI上のボタンにドラッグし、ドロップダウンから選択します。パブリックメソッドでない限り表示されません。 (public void DoSomething() { }

+0

お返事ありがとうございます。しかし、私の方法は公開されていますが、インスペクタではまだ見ることができません。私は質問のスクリーンショットを添付しました。 – blackbug

+0

これ以上見ることなく、私はそれが静的であるメソッドの問題かもしれないと思いますか?静的ではないメソッドを追加して、それが現れているかどうかを確認してください。ちょうど普通の良いオールの公の方法。 – Maakep

+0

実際には、メソッドは静的ではありませんが、クラスはシングルトンですが、それは干渉しますか? 'public void getProduct() { //製品を取得するボタンから呼び出されます。 Debug.Log(" KKLOG:getProduct() "); } ' – blackbug

関連する問題