大分前(旧ブログ)に公開してたやつの訂正版です。
数値の表示部分でインデントがズレてたので揃えたのと、文字列作成の処理を手を抜いた。
カテゴリー: Unity
ゲームオブジェクトのTransformを全取得するスクリプト その2
もう大分前に気付いていた事なんだけど、ちゃんと記事にしておこうと思ったので。
以前にあるゲームオブジェクトのTransformを全取得するスクリプトを公開したが、
もっと簡単に書ける方法があったのでGistに例を上げておいた。
GetComponentsInChildren<取得したいコンポーネント名>で、
そのゲームオブジェクトの子供以下(自身を含む)のオブジェクトの指定コンポーネントを全てかっさらってきてくれる。
結構便利なので覚えておいて損はない。
が、想像に難くないと思うが処理自体は結構重いので、毎フレームこれを呼んだり
これを1度だけ呼ぶオブジェクトが同時に大量生成されたりといった事があると負荷が高い。
(そんな事はほぼないだろうけど・・・)
ちなみにMac PC上で同じ条件で処理速度を測ってみたら、
以前に作った自前のやつ
→約 0.00030 秒
GetComponentsInChildren<>
→約 0.00064 秒
とほぼ倍ぐらいの差があった。
スマホだともっと差が顕著になる可能性があるので、乱用は避けたい所。
記述が短いからといって速度が速いとは限らない典型である。
Singleton.cs更新
GetInstance内のインスタンス比較処理が、Unity APIの処理なのでスレッドから
シングルトンを扱えない問題の対応策を入れただけの更新。
(GetInstanceWithoutFinding関数とプロパティを追加)
地味に重要。
どうでもいいけどなぜC#ファイルとして扱ってくれないのだGistは。
Smalltalkとかいうのにされてしまう。
Unity4.6.1リリース、ただし・・・
Unity4.6.1がリリースされ、WebPlayerビルド時のMac OS X 64bit対応などが入った。
リリースノート。
1点、注意すべきことがあるらしいというのをFacebookのUnityユーザー相談所で見つけたのでメモ。
https://www.facebook.com/groups/unityuserj/permalink/799819603411315/
どうもuGUIのタッチ判定の優先を決める項目が削除されて内部でごにょごにょ…に
なったらしい。まだ使ったことがないのでアレだが、まぁこの辺りを見ると発展途上感がハンパない。
もうしばらく使わなくてもいいと思うね、これ。
まだまだUIはNGUIで安定のようだ。。。
というか、4.6にしてからめっちゃUnityが落ちるようになったのは気のせいかな。
気のせいだといいんだけど。
Unity4.6リリース、新UIシステムを搭載
(ようやく本ブログの当初の目的のUnity記事を書き始めるなど。。。)
Unity4.6が先日リリースされた。
目玉は新UIシステムだ。(公式サイトでは明記されていないが、通称はuGUIと呼ばれている)
既にuGUIの使い方などについてはチュートリアルが公開されているので、
まだ使ってない・どうやって使うのか知りたいという方はここを見るのが手っ取り早いだろう。
UI
http://unity3d.com/learn/tutorials/modules/beginner/ui
また、今回の4.6からアプリの64bit版ビルドも対応されている。
が、
4.6以前のUnityは64bit対応しないらしい。アップデートするアプリも64bit対応必須とかAppleが言い出したら、あちこちで火の手があがりそうだなぁ。Unity3.0系から4.0系に上げようにも上げられなかったアプリがまだ現役というところとか想像するだに恐ろしい。
— 時村良平 (@rodostw) November 24, 2014
ということで今後Unity4.6を使う事が必須となってきそうだ。
AppStoreのアプリは今後64bit対応されたものしかリリース出来ない事は注意しておかなければならない。
既にリリースされているアプリは例外だそうだ。(今の所)
これについてはUnity Japanもコメントしているのでぜひ見ておこう。
Unity の iOS 64-bit サポートについて
http://japan.unity3d.com/blog/ios-64-bit-support-in-unity