1前提
Unityでパズルゲームを作っています。Unityのバージョンは2019.3.10.f1です。
2問題点
何個かのボタンを表示させて押すと消えたりついたりするようにしたいのですが。UIを表示させると、一度は見えるのですが、しばらくすると何もしていないのに消えてしまいます。
以下が画像です。
この画像はゲームスタート直後で一応表示されています。しかしすぐに
上の画像のようになってしまいます。
また、ヒエラルキー上には下の画像のように表示されています。"lights"というのは空のゲームオブジェクトで、このオブジェクトの子要素として"Light"というパズル用のボタンのPrefabを生成しています。
ゲームが実行されている時も、おそらく"Light"は破棄されていないと思います。またボタン"Light"子要素であるテキストは無効化されています。"Light"のinspectorを見たところ、Buttonの色は指定した黄色になっていました。
また、下の画像がゲームを一時中断したときの画像です。
Scenen画面で見たところ位置が画面外になっているため見えないのではないのでは、と思います。
void
1 { 2 if(lightStatus == null||lightStatus.Length<= 0|| 3 lightObjects == null || lightObjects.Length <= 0) 4 { 5 6 return; 7 } 8 9 Button button; 10 11 for(int i = 0; i < lightStatus.GetLength(0); i++) 12 { 13 for(int j = 0; j < lightStatus.GetLongLength(1); j++) 14 { 15 button = lightObjects[i, j].GetComponent<Button>(); 16 17 ColorBlock colorBlock = button.colors; 18 19 if (lightStatus[i, j]) 20 { 21 colorBlock.normalColor = OnButtonColor; 22 colorBlock.pressedColor = OnButtonColor; 23 colorBlock.selectedColor = OnButtonColor; 24 colorBlock.highlightedColor = OnButtonHighlightedColor; 25 } 26 else 27 { 28 colorBlock.normalColor = offButtonColor; 29 colorBlock.pressedColor = offButtonColor; 30 colorBlock.selectedColor = offButtonColor; 31 colorBlock.disabledColor = offButtonColor; 32 colorBlock.highlightedColor = offButtonHighlightedColor; 33 } 34 35 button.colors = colorBlock; 36 button.interactable = true; 37 38 } 39 } 40コード
上のコードが色を変更するためのスクリプトです。
透明度がゼロになっているというご指導をいただき、ここが原因ではないかと教えていただいたのですが残念ながら、私には原因が掴めませんでした。何か分かる方は、教えていただけると幸いです。
3試した方法
エラーなどは特に出ていませんでした。また非表示になっているわけでもありませんでした。いろいろなサイトを見させていただいて、ゲーム開始時からUIが表示されないというものは多くあったのですが一度表示されてその後に消えてしまうという原因はよくわかりませんでした。
4最後に
この問題に関して何かわかる方がいらっしゃれば、ぜひ確証などがなくても良いので教えてください。この問題はまだUnity初心者ということもあり非常に困っています。皆様の御力を貸していただけるとありがたいです。
回答1件
あなたの回答
tips
プレビュー