1
私は奇妙な動作をしています私は知らないなぜですか?ボタンクリックイベントでAddリスナーに関数を追加しようとしていますが、シーンをリロードしてもそのリスナーは表示されません。私はこの機能を持っています。 は(その取得目的のボタンオブジェクトが正しく、私がテストした)、私はに機能上呼び出していますC#でイベントリスナー関数を追加しましたが、まだそれがありません
public void SetupMenuSceneButtons()
{
if (GameObject.Find("BtnStartHost"))
Debug.Log("BtnStartHost found");
if (GameObject.Find("BtnJoinGame"))
Debug.Log("BtnJoinGame found");
GameObject.Find("BtnStartHost").GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find("BtnStartHost").GetComponent<Button>().onClick.AddListener(delegate { StartupHost(); });
GameObject.Find("BtnJoinGame").GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find("BtnJoinGame").GetComponent<Button>().onClick.AddListener(delegate { JoinGame(); });
}
はイベントをOnLevelWasLoadedが、私は私のシーンをリロードしてクリックでその機能割り当てがまだ不足していると私のボタンが機能していません。デリゲートなしでイベントリスナーを追加しようとしましたが、同じ問題があります。
GameObject.Find("BtnJoinGame").GetComponent<Button>().onClick.AddListener(JoinGame);
私もこれを介して割り当てを試みましたが、それでも問題は解決しません。私はV5.5上のコードのテストを実行した
GameObject.Find("BtnStartHost").GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find("BtnStartHost").GetComponent<Button>().onClick.AddListener(()=> { StartupHost(); });
GameObject.Find("BtnJoinGame").GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find("BtnJoinGame").GetComponent<Button>().onClick.AddListener(() => { JoinGame(); });
発見されたのですか?あなたが登録したかどうかを見るために、すぐ後で呼び出すことを試みることができます。 – Everts
@Evertsはいボタンオブジェクトを正しく取得しています。どうすればonClickコードを呼び出すことができますか? –
GameObject.Find( "BtnStartHost")。GetComponent