Animator利用時のGameObjectのactiveのon/off

animator_switch_active

何度か遊んでいるとキャラクターの顔が崩れてくるなーと思ったので調べてたら、Animatorを使うコードの中でGameObjectのactiveをon/offをしていた。テレシュールブログさんのこの記事で、やってはいけないと知っていたけど、gameObjectのactiveのon/offなんて当たり前のようにやってしまうので注意。
今回は画面外に飛ばしつつRigidbodyのisKinematicをoffにして対応し。

Text Mesh Proの複数のスタイル

Text Mesh Proのスタイルは作ったFont Assetごとに反映されるっぽい。
一部だけアウトラインをつけたいとなると、おそらくFont Assetを別途つくらないといけない(はず)。
TextMesh Proの項目のでできることはその箇所ごとで変えられるけど、その下の ***** SDF Materialの設定(Face, Outline, Underlay…)などはスタイル(マテリアル)としてまとまる。その代わり、draw callが1度で描かれる。
UnityEngine.UIにある、Outlineなどは反映されない。

参考)Digital Native Studios > Underlay Applied to All Text Mesh Pro Instances

Xcode書き出し時のDefaultHDRIによるエラー

なぜか急にXcodeプロジェクトの書き出しでエラーが出るようになった。

An asset is marAn asset is marked with HideFlags.DontSave but is included in the build: Asset: ‘Library/unity editor resources’ Asset name: DefaultHDRIked with HideFlags.DontSave but is included in the build: Asset: ‘Library/unity editor resources’ Asset name: DefaultHDRI

Continue…

Textで文字を1文字ずつ表示

1文字(指定文字数)ずつ指定時間の間隔で表示させるText。
Textでもいいけど、TMP_Textで。
禁則処理や配置でガタガタしないようにしてる。
(alpha=1にして見えづらくしてるだけ…)
UniRx使用。
Continue…

CanvasのWorldSpaceのタップの位置

WorldSpaceに設定されたCanvasを作るとき、それをメインカメラとは別の専用のカメラで映す際にボタンが反応せずハマった。
このCanvasの他に、WorldSpace以外の設定でのCanvasがあると、タップの位置がずれてしまった。そちらのCanvasと位置を合わせたらうまく動いた。
そもそもどのカメラの基準でタップされた位置が判定されるとかの設定があるのかな…?

Canvasコンポーネント内にあるEventCameraってのがタッチしたスクリーン座標をどのカメラの座標系で計算するかという指定なので、ここにUIを映しているカメラを設定すればいいだけだった。。。
ちなみにスクリプト上で行うのは Canvas.worldCamera を使って設定可能。

VRモードでのカメラの切り替え

VRモードでのカメラの切り替えは、SetParentとかで親オブジェクトを変えるより、以前のカメラを破棄(or disable)にして、あらたなオブジェクトにCameraをAddComponent()した方が扱いやすい気がする。

VRコンテンツでのUI表示

VRにてUIを表示する際に、Cameraの設定はOrthographicでいいかなと思いましたが、どうやらVRコンテンツでは(google VRでは?)カメラの設定をOrthographicではなく、Perspectiveに設定するしかないようです。
Post Processingを使っている場合はその影響が出ないように、UI専用のCameraを作成しそちらをPerspectiveにし、そちらにCanvasのRenderModeをWorldSpaceに設定し、そのカメラの子オブジェクトにしました。
PerspectiveなCameraへUIをスケールを使ってフィットさせる方法は
Continue…

Xcodeのパスのrecursiveの設定

PBXProjectなんかを使って、Xcodeの設定を書き換える際、パスのrecursiveを設定するには、パスの値に**とつければいい。
“$(PROJECT_DIR)/Frameworks/Plugins/iOS/**”
こんな感じ。