①上に書いた方
②両方
③新しいOnDeinit()
②だと応用できそうで面白いのですがどうでしょうか
以下のソースを作成しました。
void OnTick(){}
void deinit(){Print("deinit");}
void OnDeinit(){Print("OnDeinit");}
余談ですがこの文は面倒です。何とかならないものでしょうか
実行し終了処理を走らせてみます。
deinit()のみ動作しているようです。
上にあるからでしょうか?
void OnTick(){}
void OnDeinit(){Print("OnDeinit");}
void deinit(){Print("deinit");}
今度はOnDeinit()を上にしてみます。
コンパイルwarningは同じです。
またもdeinit()のみが動作します。
順番ではないようです。
void OnTick(){}
void OnDeinit(const int reason){Print("OnDeinit");}
void deinit(){Print("deinit");}
const int reasonを入れてみます。
こんどはerrorでコンパイルできません。
OnDeinit()が定義されている為deinit()は拒否されています。
void OnTick(){}
void deinit(){Print("deinit");}
void OnDeinit(const int reason){Print("OnDeinit");}
順番を逆にします。
今度はOnDeinit()が拒否されました。
上にある方が優先されるようです。
考えてみれば当たり前ですが・・・