UnityのExecutionOrderは継承元に依存するのか調べてみた
まずこんな抽象クラスを用意し、メニュー: Edit > Project Settings > Script Execution Orderより最優先に実行するように設定。
using UnityEngine; public abstract class AbstructPriorityUpdate : MonoBehaviour { void Update () { PriorityUpdate (); } public abstract void PriorityUpdate(); }
これを継承したtest1クラスでPriorityUpdate()を呼び出した場合と、MonoBehaviourを継承したtest2クラスでUpdate()を呼び出した場合で実行順を比較してみました。
結果
この実行順を設定した場合、
test1 → test2 の順で呼び出され、
この実行順を設定した場合、
test2 → test1 の順で呼び出されました。
ということは、ExecutionOrderは継承元には依存しないようです。
継承するだけで優先的に実行されるUpdate()を実現しようと思ったのですが、ダメだったので覚え書きとして残しておきます。