細かい修正や追加をしていて余り進んでいないかも(´・ω・`)
タイトル画面でToggleやDropdownを増やして、基本的な設定変更はそこでやってもらう形にすることに。効果音の有無、BGMの有無、マッチ後のカードの自動消滅や裏面分けの有無。
あと結局、ややアルファを落として下のカードを視認出来る程度の透明度のでっかいオーバーレイ表示を行うことにした。やっぱり、小さいカードに情報を詰め込むのは無理くさい。というか出来るけれども読めないので意味がない(´・ω・`)
UIのDisable(グレーアウト)
トランプを選択した場合、
- 情報系と違って長時間表示している意味がないので、デフォで自動消滅するようにして、Toggleをdisabledにする。
- またオーバーレイ表示をする意味はないので、オーバーレイ表示をしないようにして、Toggleをdisabledにする。
- トランプは図オンリーなので、カード内容を選択するdropdownをdisabledにする。
という風にしたかったので、最初はenabledにfalseを設定した。
そうすると操作は効かなくなっったが、色が変わらない(´・ω・`)
次にSetActive(false)をすると、表示自体しなくなった…
これはこれでいいかもと思ったが、そうするとDropdownのインスペクターに表示されてる"Disabled Color"ってなんだよ(´・ω・`)?っていう疑問に至り、ぐぐる。
(C#)UnityのButtonをDisabledにしたくて地味に躓いた
ああ、interactable をfalseにするんか(・∀・)
問題自体は解決したが更に、
Unityのボタンのenabled/setActive/interactableの違いというエントリを読むと、enabledとinteractableはGameObjectに使えず、setActiveはUIObjectに使えない模様。
※2018/5/25追記
よくよく考えてみるとComponent.gameObjectがあるので、
[UIコンポーネント].gameObject.SetActive(false);
とすれば非表示に出来る模様。
なんでCheckboxじゃなくてToggleって名前にしたんだろうね(´・ω・`)
Toggleのチェックマークが小さすぎるので、どうやって大きくするのかとToggle the Images on Toggle Button .やら他のエントリを一生懸命読んだりしたが、単純にチェックマークのイメージを大きくするだけでよかった(ノ∀`)
ToggleとかのGetIntとSetIntは三項演算子が楽なんだね(・∀・)
【Unity】チェックボックスとラジオボタン
BGM再生
今まではデフォでBGMを再生していたけれども、BGMのON/OFF設定を追加したので、その辺を修正した。【Unity開発】Audioまとめ(基本編)【ひよこのエッセンス】を参考にして最終的に
void Update() { if (isPlayBGM && !(GetComponent<AudioSource>().isPlaying) ) { GetComponent<AudioSource>().Play(); } }
という感じにした。BGM再生の設定を読み込んだisPlayBGMだけだと毎回再生を始めようとするのかなんなのかわからないが、最初の数秒流れて音楽が止まってしまった。なのでisPlayingで再生していない場合だけ再生を開始するようにした。もしかしたら、もっと正しいやり方があるのかもしれないが、今のところ、これで良しとしよう。
タッチ
マッチ後のカードの自動消滅の設定を追加したので、位置やUIを限定した画面タッチではない画面タッチを拾う必要が出て来たが、どうすればいいのかわからず、ぐぐる。
タッチパネル対応を参考に
void OnGUI() { <pre><code> if (Event.current.type == EventType.MouseDown) { //Do Something </code></pre> } }
という感じに。意外と簡単だった(・∀・)
これで本当に正しいのかはわからないw
dropdownの画像指定
カードの裏面選択を画像から選べるようにしたいなぁと思い、ぐぐる。参考ページを読んだり、色々いじったりするもDropdownの仕組みがイマイチわかりにくかった(´・ω・`)
が、しばらくしてからようやく何に引っ掛かっていたのかがわかったw
もう既に知っていたことだったのだが、
1つのGameObjectに対してImageコンポーネントやTextコンポーネントは1つしかアタッチ出来ないという大前提を忘れていたのが原因(ノ∀`)
これ、実はToggleのCheckmarkのところでも同じことでハマっていたというか納得せずに悶々としていたw Graphicというプロパティ(?)に対してImageをD&Dしようとしても上手く行かず、GameObjectじゃないとD&D出来ない状況に、ドウシテダヨ,バーヤバーヤヽ(`Д´)ノと怒っていた俺氏であったが、先の大前提を踏まえれば、当然至極であった。
複数のImageやTextをアタッチしたいGameObjectは子Objectを作って、それにImageをアタッチしなきゃ駄目だからこういう形になるんだな。
取り敢えずDropdownの下にGameObjectを追加して、そのオブジェクトにImageコンポーネントを追加。そしてそのGameObjectをCaption ImageにD&Dしてサイズ調整をし、OptionsのImageの方にD&Dすれば意図していた画像選択が可能になった。
※追加し忘れていた(ノ∀`)
参考:
Dropdown
【Unity開発】uGUIのDropDownの使い方【ひよこエッセンス】
取り敢えず後は
- 表示フォントサイズやどのくらい情報を表示するかの調整
- 神経衰弱ゲームとしてのゲームギミック関連
- カード(データ)・セットを増やす
辺りか。
どれも重い作業だけれども、まあ、ゴールが見えて来た……かなぁ…(ヽ'ω`)
カードセットの追加は後々継続的にしなければならない作業だし……