unity study

Unityでサクッとモックを作れるようになることを目指して、基本的なテクニックを抑えていく過程を残すブログのつもりだったけど、今はただ自分のトラブルシューティングメモになってるブログ

ObservableMonoBehaviour使う時の些細な注意点

ちょこちょことミニゲーム作る中でUnirx使ってみてるんだけど、地味にハマった点。
ObservableMonoBehaviourを継承してUpdateAsObservable()使ってて、なーんかイベント来ねぇなぁ、って。
Update()の中でbase.Update()呼ばないとダメなんよ。
うん、至極単純なことなんだけど、つまんないことにハマって無駄に時間使っちまった。
スクリプトのテンプレってデフォで空のUpdate()定義されてるから、うっかりハマっちまったぜ。

UniRxを使いこなしたい

先日、Unityでの非同期処理やらにテーマを絞った勉強会に参加してきた。
まぁ主にUniRxの話なんだが、非常にためになった。
ダブルクリック検出ぐらいはよくサンプルで見かけたりするし、流石にそれぐらいは分かるのだが、
色々と応用的なことをしようとするとまだまだ難しい。
やっぱ実際にありそうな実例と共に、その解説があると理解しやすい。
いまちょこちょこ作ってるミニゲームも、なんだかんだでコードがとっちらかりつつあるし、落ち着いたタイミングでUniRxでさっぱりさせてみたいな。

勉強会のスライド
Unity 非同期プログラミング.pptx - Microsoft PowerPoint Online

www.slideshare.net

これは便利!
Learn Reactive Extensions

Editor Console Proがとっても便利!

ちょっと仕事で、かなり厄介な不具合調査を行うことがあった。
これがもう手に負えないぐらい酷いコードで、対症療法的にネストを積み上げたif文だの、いまいち名前から機能を類推しがたいメソッド名やら、とにかく調査が大変だった。
ブレークポイントで止めたいわけではないんだが、どのタイミングでどの処理が走っているのかを追う必要があり、大量のデバッグログを差し込んだ。
そうなると当然、ログが勢い良く流れすぎて、いちいち進行を止めないとまともに確認できず。
そんな時だったね、僕がEditorConsoleProを薦められたのは。
こいつを使えばログ出力元のソースファイルパスや、クラス名・名前空間やらでフィルタリングして、表示を切り替えたり色を変えたりして見やすくできる。
正直、ただログ見やすくなる機能に$25払うのもなー、と思ったりしたけど、これは悪くないぞ。
うんうん、本当に使うかどうか分からんようなモデルデータとかより、こういうエディタ拡張の方が投資効率良いかも。
https://www.assetstore.unity3d.com/jp/#!/content/11889
baba-s.hatenablog.com

FixedUpdate()がいまいち分からない

とりあえずググる

  • Rigidbodyの値をいじるのはUpdate()ではなくFixedUpdate()で行なうこと
  • FixedUpdate()でInputを参照しないこと

となっている。
後者は、入力を取りこぼしうるからってことらしい。
まぁそれは分かんなくもないんだけど。
実際のところ、これまでちょっとしたサンプルを書く分には、全部Update()でやっちゃってても問題起きなかったけど、どうなんだろ。
たまに何かのサンプルとか見ると、上記を守ってなかったりするものも多いし。
あと、RigidbodyだけじゃなくてWheelJointとかも同じように扱わないとダメなのかな?