Haste
僕が愛用しているAssetの紹介です。
HasteとはAlfredなどのランチャーアプリのようなものです。
Cmd+KでHasteの検索窓が表示されます。
ファイル、オブジェクト検索からメニュー操作までできます。
ファイル、オブジェクト検索はProject,Hierarchyが対象です。
文字が抜けていても検索できるのでうろ覚えのファイルを見つけたい時にとても便利です!
メニュー操作は「Assets/Reimport All」や「Window/Project」などメニューのパスを打てば実行できます。
フリー版でも十分に使えますので是非使ってみてください。
Shader Forge
ShaderForgeとはノードベースでShaderを作れるものになります。
期間限定で40%OFFだったので購入しました。
Shaderの勉強中だったので調度良かったです!
ShaderForgeはUnrialEngineのマテリアルエディタを参考に作られているそうなのでこちらもついでに購入。
これからShaderForgeに関しての記事を書いていこうと思います。
Unity5.3からのシーン遷移
Application.LoadLevel→SceneManager.LoadScene("hoge", LoadSceneMode.Single);
Application.LoadLevelAsync→SceneManager.LoadSceneAsync("hoge", LoadSceneNode.Single);
ApplicationLoadLevelAdditive→SceneManager.LoadScene("hoge", LoadSceneMode.Additive);
ApplicationLoadLevelAdditiveAsync→SceneManager.LoadSceneAsync("hoge", LoadSceneMode.Additive);
StateMachineBehaviourについて
StateMacineBehaviourとはUnity5から追加されたAnimatorのステート状態に合わせてコールバックを返してくれるものになります。
AnimatorControllerに貼り付けて使うものになります。
OnStateEnterがステートに入った時、OnStateExitがステートから出る時。
StateMachineBehaviourの取得はAnimator.GetBehaviour<T>()を使う。
Unityちゃん、揺れもの、Reflectionについて
Unityで揺れものを実現させたい場合Unityちゃんの
SpringManager,SpringBone,SpringColliderを使うと簡単に実装できます。
ですが、パフォーマンス確認中に若干ボトルネックになっているところがあった。
Unityのプロファイラーで確認してみるとSpringManagerが毎フレーム重い処理をしています。
Unityちゃんの揺れものはPhysXに頼らずに自前で演算しているので毎フレーム物理演算のスクリプトが実行されているのはわかるのですがそれにしても遅い気がする。
なのでSpringManagerのスクリプトを確認したところ毎フレームReflectionを使ってSpringBoneの変数に値を入れていました。
Reflectionとは通常より1000倍くらい重い処理になります。
詳しくは下記URLに詳しく乗っています。
実行時型情報 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
Reflection使わずにアクセスするように変えたら10~20msほど速くなりました。
頻繁に実行されるところにReflectionを使うのはあまり良くないかもしれません。
直前のコミットをなかったことにする
変更されたファイルを残す
git reset --soft HEAD^
変更されたファイルを残さない
git reset --hard HEAD^