Unity 2018.03 ScriptExecutionOrderを設定する

実はVTuber活動もこっそり続けているのですが、Unity2018.03にバージョンアップした際、プロジェクトがいろいろ壊れてしまいまして
ベースとなるシステムを1から再構築中でございます
その時にスクリプト実行順でハマったのでメモ

ScriptExecutionOrder

Unityが実行するスクリプトの実行順序を制御するための仕組みです
「Edit」>「Project Settings…」>「ScriptExecutionOrder」 でアクセス可能です

発生した症状

キャラクターの制御に「FInal IK」と 「Hair Designer」というコンポーネントを利用しています
Final IKで制御したキャラクターに、ファーの生成が追従しないという症状が発生しました

原因はスクリプト実行順だった

コンポーネントの再アタッチや、コンポーネントの順序変更などを試しても改善せず、原因を詳しく調査したところ、スクリプト実行順に原因があることが分かりました

こちらは失敗例
ファーを生成するスクリプト「HairDesigner」が、Final IKのコンポーネントよりも先に実行されるようになっています
その結果、 ファーが生成されてから、モデルが変形する という順序になっており、結果、モデルにファーが追従しませんでした

スクリプト実行順を変更

HairDesignerがFinal IKより後に実行されるようにしました (数字が大きいほど、あとに実行される)

結果、ちゃんとモデルの変形にファーが追従するようになりました

以上

普段あまりスクリプト実行順は意識することはありませんが、複数コンポーネントを利用するときは注意が必要ですね