ProjectWindow で現在選択されているフォルダか、そのファイルの親フォルダの取得
Editor スクリプトで現在選択されている ProjectBrowser 内のパスを取るときに、表示が1カラムか2カラムかでちょっと挙動が変わるので処理をわけて取得したときのメモ。
Editor スクリプトで現在選択されている ProjectBrowser 内のパスを取るときに、表示が1カラムか2カラムかでちょっと挙動が変わるので処理をわけて取得したときのメモ。
条件がわからないですが、WebGL 書き出しで Windows の Chrome のみで WebGL 部分をリサイズさせると UI が表示されなくなることがありました。関係あるかわからないけど分かっている条件は
・Universal Render Pipeline
・UniversalRenderPipelineAsset の Anti Aliasing(MSAA) は Disabled
・Canvas は Screen Space – Camera
・指定している Camera の Anti-Aliasing が Fast Approximate Anti-alliasing 以外 で発生
追記) 2020.04.01
デプステストを常に通過させるようにすると直るようです。
Animator でアニメーションの状態を切り替える際に AimationClip でキーを打っていない値に対していステートの Write Defaults にチェックが入っている場合、配置してあるデフォルトの値とみなしてアニメーションのブレンディングが行われるようです。
On の場合
Off の場合
参考) テラシュールブログ |【Unity】知らないと面倒くさい事になるかもしれないAnimatorの「Write Defaults」の動作について
Timeline のトラックで直接アニメーションを録画刷る際にできる Recorded というクリップ。要らなくなったので消したいなと思い、消そうと思ったけど消えない…
しかたなく、Timeline を新たに作り、トラックをコピペすると Recorded クリップも増える。どうも使っていなくてもトラックに紐付いているようなので、そのトラックを作り直したら消えた。
バリアントプレハブとか使ってるとなぜかレイヤーの順番がうまく変わらないことがあるので、無理やり変えてみた。
同じ階層限定。
public class SetLayerOrder : MonoBehaviour { enum Order { Front, Back, } [SerializeField] private Order order; [SerializeField] private Transform targetObject; private void Start() { int myIndex = this.transform.GetSiblingIndex(); int targetIndex = this.targetObject.GetSiblingIndex(); if (myIndex < targetIndex && this.order == Order.Back) --targetIndex; else if (myIndex > targetIndex && this.order == Order.Front) ++targetIndex; this.transform.SetSiblingIndex(targetIndex); } }
SimpleAnimation でアニメが動かないときになぜか Culling Mode が Cull Update Transforms になっていることがある。
Always Animateにすると動くけど、なぜか Cull Update Transforms だと動かない…
Quad や 5.1ch など3Dサウンドを Unity で作った際に、どうも挙動がおかしかった。
よく考えると3Dサウンド空間で AudioClip のステレオってなにって感じですね。右も左もなく、AudioSource がいるところが音の発信源なので。
ステレオのクリップっだと AudioListener から一定距離が離れると音が出なくなってしまったりした。
Inspector 上で AudioClip をモノラルに変えるチェックを入れれば解決。
Default Playables にあるVideo Script Playable Trackで再生するときに、とあるビデオクリップだけコマ落ちした。
調べてみると音声が入っているとコマ落ちする。今回は音声は要らなかったので、ビデオから音声を取り除くか以下のように Audio Output Mode を None にしてあげることでコマ落ちしなくなった。
単純に Video Player で再生する分には問題なさそうなんだけど、なんでだろ。
Video をタイムラインで再生したいときには Unity が公式に配布している Default Playables にあるVideo Script Playable Trackを使えば再生できる。
シーンに配置した VideoPlayer と、タイムライン上でクリップを作成して、クリップの設定で動画をしていして終わり。
注意点としては、クリップ毎に VideoPlayer が必要。
トラックは1つでもいいけど、VideoPlayer はその分必要になる。
なんででしょ…?クロスフェードの関係?
ProjectSettings の Audio には、オーディオのボリュームを調整できる Global Volume がある。一方ランタイムで操作できるボリュームには static 変数の、AudioListener.volume がある。
この両方はどうやら一緒っぽい。
AudioListener.volume が再生する度に Global Volume の値にリセットされているっぽい。
Unity での音が大きい場合ここを下げておくと便利なので、それを Editor 拡張からどうやればいいか調べてみました。