switch式で、EventSystem.current.currentSelectedGameObjectを使うとNullになる

実現したいこと

いつもお世話になっております。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がNull5 bool a = EventSystem.current.currentSelectedGameObject switch6 {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に聞く

補足情報(FW/ツールのバージョンなど)

unity version 2022.3.9f1
明確な情報ではなく、当てずっぽうでも構いません。不足な情報等あればお知らせください。
あと、UnityEventをUnityの標準のButtonのOnClickのように上下の順番を入れ替えられるようにするにはどうすればいいですかね?
良ければお教えください。英語で探しても見当たりませんでした。

コメントを投稿

0 コメント