![
実現したいこと
1.Menuボタンを押してPrefabsからMenuPrefabを画面上に表示する。
2.表示した後表示されたMenu以外のUIを無効にする
3.表示したMenu以外の場所をクリックしてMenuを閉じる。
出来ていないこと
3.の閉じる処理のみです。
試したこと
・MainCanvasにCanvasGroupを追加してinteractable = false;にすることでそのほかのUI無効。
・MainCanvasそのものにButtonComponentを追加してDeleteUI()適用。(interactable = false;で無効になっているのか意味がない
・MainCanvasとは別のCanvasを作成しButtonComponent追加するも効果なし。
public GameObject MenuPrefab; public GameObject MenuCanvas; 中略 public void OpenMenu() { if (GameObject.FindWithTag("menu") == false) {//Prefabにmenuタグを追加 Instantiate(MenuPrefab); MenuCanvas.GetComponent<CanvasGroup>().interactable = false; //Canvas内にあるUI全て無効に } } public void DeleteUI() { Destroy(GameObject.FindWithTag("menu")); //menuタグのついているUIを削除 MenuCanvas.GetComponent<CanvasGroup>().interactable = true; /Canvas内にあるUI全て有効 }
環境 Unity2019 Windows10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/22 04:20
2019/09/22 08:28
2019/09/23 03:46