カテゴリー: 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記事を書き始めるなど。。。)

unity_4_6

Unity4.6が先日リリースされた。
目玉は新UIシステムだ。(公式サイトでは明記されていないが、通称はuGUIと呼ばれている)

既にuGUIの使い方などについてはチュートリアルが公開されているので、
まだ使ってない・どうやって使うのか知りたいという方はここを見るのが手っ取り早いだろう。

UI
http://unity3d.com/learn/tutorials/modules/beginner/ui

また、今回の4.6からアプリの64bit版ビルドも対応されている。
が、


ということで今後Unity4.6を使う事が必須となってきそうだ。

AppStoreのアプリは今後64bit対応されたものしかリリース出来ない事は注意しておかなければならない。
既にリリースされているアプリは例外だそうだ。(今の所)
これについてはUnity Japanもコメントしているのでぜひ見ておこう。

Unity の iOS 64-bit サポートについて
http://japan.unity3d.com/blog/ios-64-bit-support-in-unity