script Execution Orderを使えばいい
順序を設定しなければ予定されてもいない予定通りにプログラムが動かないのは当たり前
気まぐれなのはunityじゃなく動くかわからないプログラムを作る人間