今までVisualStudioを何年も使用していて、
結構最近知った機能の紹介です。
### 概要
コード上で右クリックしたときのメニューで、
不要なUsingを削除してもらえます。
不要なUsingをほっとくと、参照先が消えた時に
意図しないコンパイルエラーになったりよくないので
こまめに消すことを習慣化できるこの機能は便利だなと思いました
今までVisualStudioを何年も使用していて、
結構最近知った機能の紹介です。
### 概要
コード上で右クリックしたときのメニューで、
不要なUsingを削除してもらえます。
不要なUsingをほっとくと、参照先が消えた時に
意図しないコンパイルエラーになったりよくないので
こまめに消すことを習慣化できるこの機能は便利だなと思いました
ScrollViewなどでLayoutGroupを使った際に、
レイアウト調整がうまくいかなかった時の対処法です
以下の動画のように各アイテムのスペースの調整が本来自動で行ってほしいところ、
うまくいかない場合があります。
スクリプトからアイテムをInstanceした際によく起こる現象かなと思います
//LayoutGroupの中にInstantiateでアイテム生成 Instantiate(GameObjectPrefab, LayoutGroupContent.transform); //LayoutGroupのRectTransformに対してレイアウトの再構築を実行する LayoutRebuilder.ForceRebuildLayoutImmediate(LayoutGroupContent.GetComponent<RectTransform>());
上記のように、アイテム生成後に
"LayoutRebuilder.ForceRebuildLayoutImmediate()"の関数で
レイアウトの再構築を実行することで、以下のようにうまく描画することができます。
LayoutRebuilder.ForceRebuildLayoutImmediate()関数は
自動レイアウト調整後にGameObjectの高さを取得したいけど正常な値が取れないときなど、
自動レイアウト周りの不具合の解決に最適な場合が多いです。
覚えておいて損はないかなと思います。
InputFieldで表示を変えたりするときに、
onValueChangedのイベントはよく使われると思います。
今回は、onValueChangedでテキストの行数を取得するときに
ちょっと詰まったので注意点と対策を共有します。
int lineCount = TMP_InputField(変数名).textComponent.textInfo.lineCount;
上記の実装でテキストの行数が取得できます。
この「textInfo」は行数以外にもいろいろ情報が入ってるので、覚えておくと便利です
Class TMP_TextInfo
上の手順がわかれば、あとはonValueChangedで処理を描けばいいだけと思ったのですが、
実際の挙動は以下のようになりました。
実際は改行が起きた次の文字でlineCountが1→2に切り替わる挙動となってしまいました。
見た感じ、「lineCount」の情報が1文字遅れてるのでしょうか?
※削除したときはちゃんと表示に合わせて2→1になってるので
単純な遅れってわけじゃなさそう・・・
onValueChangedの中で、
TMP_InputField(変数名).textComponent.text = value;
を行えばちゃんと表示に合わせてlineCountの数値も変わりました。
この実装を行うことで、onValueChangedが二重で呼ばれたりしないのか不安だったんですが、
特にそんなことはなく正常に動きました。
二度手間感はありますが一旦はこの対応でしのげます。
VisualStudioでoverrideを実装するときに、
関数名やプロパティを記入するの面倒くさかったりしないでしょうか?
基底クラスを開きなおして関数名を調べたり、、、
VisualStudioの機能でそんな問題が解決します
※VisualStudio以外でも有効かもですが未調査です
たったこれだけです。
サンプルだと基底クラスと派生クラスを同じソースファイルに書いてるので
パット見恩恵がわかりづらいですが、
Unityなどでソース書くときは基本1クラス1ファイルになるともうので
この入力補完の機能知ってると知ってないとじゃ大違いです!
ぜひお試しください
Excelを用いてJsonファイルを作成するxlsmファイルです。
ある程度汎用化させているので自由な形で作成できると思います。
追加機能で、Jsonファイルに応じたC#用のクラスファイルも生成する機能も付けています。
JsonSerializerで扱うように作ってるので、
C#でデータを扱う際にはほぼ作業なく実装できるのではないかと思ってます。
GitHubに公開していますので自由に使ってみてください。
※ご意見、ご感想お待ちしております
ExcelJsonMaker.xlsmファイルが本体です。
落としてそのまま使えるようになってます
github.com
最近アプリでよく見るスライド式ポップアップを作成しました。
汎用性を持たせたので簡単に実装できるようにしてます。
・DotWeen、TouchScriptを導入
DOTween (HOTween v2) | Animation Tools | Unity Asset Store
TouchScript | Input Management | Unity Asset Store
パッケージ内のSampleSceneを見ればアセットの内容はわかると思います。
Inspectorの設定を画像で説明します。
最近、IL2CPPでビルドした時に上手くいかないことがあり
対処法を色々試したので解決したものを紹介します。
・ビルドを行ったら、必ず「Building native binary with IL2CPP…」で固まる
・Cancelしても固まったまま
・IL2CPPからMonoに切り替えるとビルドは成功する
・再起動、Liblary初期化等の対応を行っても直らない
・何度か試しているとビルドに成功する
ウイルス対策ソフトを停止させた。
私はスーパーセキュリティというソフトを入れていたのですが、
そいつのせいでビルドが固まっているようでした。。。
画像のように保護の項目を全てOFFにして再起動後にビルドすると上手くビルドできました。
皆さんも、同じことがあった場合はウイルスソフトを疑ってみてください。