Unity備忘録
検索してもすぐに答えが出なくて、思いついたのを試したら解決したこととか、いろいろ組み合わせたりして実装したものとかを、メモ程度にまとめていくと思います。
もっといい方法とかあるかもなので、あったらぜひ教えていただきたいです……
分量多めになったのは個別ページに、ちょっとしたのはとりあえずこのページにまとめてます。
増えてきたらちょっとしたのもまとめて別ページにするかも。
あと、載せてるソースとかは、他からの引用など以外は基本的に自由に使っていただいて大丈夫です。
・数値入力ピッカー
・多言語対応
・親コンポーネントのEvent TriggerのPointer Downを、子コンポーネントの上では無効化する
(やりたいこと)
モーダル背景(画面全体に半透明の黒いパネルを重ねる)
Lモーダル本体
上記みたいな親子関係で、モーダル背景をタップするとモーダルを閉じれる、みたいな実装がしたい。
(試したことと結果)
・モーダル背景に、Event TriggerのPointer Downを設定してイベントを呼び出す。
→モーダル部分をタップしてもイベントが呼び出されて、モーダルが閉じてしまう。
モーダル部分は反応しないようにしたいけど、検索してもそれっぽいのが見つからないので困る。
とりあえずモーダル本体にもEvent Triggerを設定してみたらどうだろうか?
・モーダル本体にもEvent TriggerのPointer Downを設定する。イベントは空っぽのままにしておく。
→モーダルの背景部分だけが反応して、モーダル部分をタップしても反応しない!
・生成したテキストを表示したら変なところで改行されて重なる
(困ったこと)
変数とかから生成したテキストをTextMeshProのSetText()で表示すると、↑の画像のように、「:数値」の部分がその行の先頭に移動して重なって表示される。
(原因と解決策)
表示しているテキストを確認したところ、「:数値」の手前にCRの改行が入っていました(意図して入れてる改行はLF)
というわけで、SetText()の前にReplace("\r", "")で置き換えることで解決。
でも改行が入ってしまう根本的な原因がわかっていないのでちょっともやもや。
全角文字と半角文字(数値)が混ざっていることあたりでなにかありそうなのですが、何が原因だろう……
ちなみに、「:」を「:」(半角)や全角スペースに置き換えたりした場合にも同じ現象が発生しました。
あと、テキスト自体に改行が入っていたのが原因だったので、TextMeshProは多分無関係?