ポーズ画面、ポーズボタンはUIで、ポーズ画面はPanel上にボタンを乗せている状態です。
これは上に乗せてるだけですか?ヒエラルキー上でpanelの子としてボタンを配置しているのならとりあえず出してください。もし入れ子状態なら親オブジェクト(panel)をPanel.SetActive(false);するとボタンも消えます。
▼ Panel
Poze
みたいに入れ子になっていないなら下の方法で解決できます。
解決法 1 すごく分かりやすく書いてみる。
//( 省略 )
public void Buttonpush(){
bool isActivePanel = true;
bool isActivePoze = true;
//gameObject.activeInHierarchyでシーン上でアクティブか?(見えているか?)が判定できます。
//見えていればtrue 見えていなければfalse
if(Panel.activeInHierarchy) {
isActivePanel = false;
}else{
isActivePoze = false;
}
Panel.SetActive(isActivePanel);
Poze.SetActive (isActivePoze);
}
//( 省略 )
解決法 2 短く簡潔に書いてみる。
//( 省略 )
public void Buttonpush(){
bool isActivePanel = Panel.activeInHierarchy;
//!で逆という意味です。!true と false は同じです。
Panel.SetActive(!isActivePanel);
Poze.SetActive (isActivePanel);
}
//( 省略 )
ちょっと気になったので。。。
C#
1private static GameObject Panel;
2private static GameObject Poze;
こちらstaticにする理由はなんですか? managerという名前だからですか?
明確な理由が無ければ必要ないので消しといてください。むやみにstaticは使わない方がいいですよ。
C#
1private GameObject Panel;
2private GameObject Poze;
あと最後にインデントをとった方がいいです。失礼ですが今のコードはすごく読みにくいです ><
そんなにむずかしくないのでトライしてみてくだい。人だけではなく自分自信も読みやすくなりますよ。
インデントをとって書いてみる。
public void Buttonpush(){
bool isActivePanel = true;
bool isActivePanelPoze = true;
//activeInHierarchyでシーン上でアクティブか?(見えているか?)が判定できます。
//見えていればtrue 見えていなければfalse
if(Panel.activeInHierarchy) {
isActivePanel = false;
}else{
isActivePanelPoze = false;
}
Panel.SetActive(isActivePanel);
Poze.SetActive (isActivePanelPoze);
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/09 19:50