Photonで、カスタムプロパティの値を変更したり取得したりするコードを書いているのですが、思ったように動きません。
この画像のようにOKボタンとNOボタンがあって、OKを押したらカスタムプロパティをtrueに、NOを押したらカスタムプロパティをfalseにしたいです。
そのために下記のコードを書きました。
OKボタンを押したらPreparingOK()が呼ばれます。
NOボタンを押したらPreparingNO()が呼ばれます。
こうすれば、OKボタンを押せばDebug.Logでtrueが出力され、NOボタンを押せばfalseが出力されると思いました。
ですが、そうはなりませんでした。
ボタンが押されてもログが出力されない時があります。
また、OKボタンを押した後にNOボタンを押すと、trueではなくfalseがログに出力されてしまいます。
その後もう一度NOボタンを押すとfalseが出力されます。
このような挙動になってしまう原因がわかりません。
ログが出力されない時があるという事は、カスタムプロパティに値が代入されていない時があるという意味なのかもと思ったのですが、なぜ値が代入されていない時があるのかがわかりません。
思ったように動かないのは、このコードのどこが原因なのか教えて下さい。
ExitGames.Client.Photon.Hashtable hashtable = new ExitGames.Client.Photon.Hashtable(); public void PreparingOK() { hashtable["Preparing"] = true; PhotonNetwork.LocalPlayer.SetCustomProperties(hashtable); if (PhotonNetwork.LocalPlayer.CustomProperties["Preparing"] is bool preparing) { Debug.Log(preparing); } } public void PreparingNO() { hashtable["Preparing"] = false; PhotonNetwork.LocalPlayer.SetCustomProperties(hashtable); if (PhotonNetwork.LocalPlayer.CustomProperties["Preparing"] is bool preparing) { Debug.Log(preparing); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/23 09:11