実現したいこと
いつもお世話になっております。Unityでタイピングゲームを作っています。ボタン(OnPointerClick()で作成)を押したときに、別のスクリプトの関数を実行するのはできたのですが、その関数内のSwitch式が、いつもdefault値に行ってしまいます。気になって調べたら、EventSystem.current.currentSelectedGameObjectがnullでした。
該当のソースコード
c#
1public void StartProblem() { 2 ProblemSelectingManager psm = GameManager.Instance.problemSelectingPanel.GetComponent<ProblemSelectingManager>(); 3 4//この行のEventSystem.current.currentSelectedGameObjectがNull 5 bool a = EventSystem.current.currentSelectedGameObject switch 6 { 7 GameObject value when value == psm.HTMLPanelToggle => GameManager.Instance.Call(() =>{ 8 ProblemKind = GameManager.LANGUAGETYPE.HTML; 9 isMemorize = psm.HTMLPanelToggle.GetComponent<Toggle>().isOn; 10 Debug.Log(value); 11 return true; 12 }), 13 GameObject value when value == psm.CSSPanelToggle => GameManager.Instance.Call(() =>{ 14 ProblemKind = GameManager.LANGUAGETYPE.CSS; 15 isMemorize = psm.CSSPanelToggle.GetComponent<Toggle>().isOn; 16 Debug.Log(value); 17 return true; 18 }), 19 _ => GameManager.Instance.Call(() =>{ 20 ProblemKind = GameManager.LANGUAGETYPE.JS; 21 isMemorize = psm.JSPanelToggle.GetComponent<Toggle>().isOn; 22 Debug.Log(psm.HTMLPanelToggle); 23 Debug.Log(EventSystem.current.currentSelectedGameObject); 24 return true; 25 }) 26 }; 27 Debug.Log(a); 28 RefreshProblem(); 29 }
試したこと
関連する項目の検索
value when value == psm.HTMLPanelToggleをかっこで囲う
currentSelectedGameObjectをfirstSelectedGameObjectに置き換える
currentSelectedGameObjectをlastSelectedGameObjectに置き換える
UnityEventの順番を入れ替える
chatGPTに聞く
EventTriggerを追加する
補足情報(FW/ツールのバージョンなど)
unity version 2022.3.9f1
明確な情報ではなく、当てずっぽうでも構いません。不足な情報等あればお知らせください。
あと、UnityEventをUnityの標準のButtonのOnClickのように上下の順番を入れ替えられるようにするにはどうすればいいですかね?
良ければお教えください。英語で探しても見当たりませんでした。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。