シーン遷移時に引き継ぎたい変数をどの手段から選べばいいか迷ってるんですけど、

1 static変数として持つ
2 ScriptableObjectを作ってそこに一時保管しておく
3 dontdestroyで変数の入ったスクリプトがアタッチされているオブジェクトを壊さず持っていく
4 外部のdb等に一時保管しておく

辺りで迷ってるのですが、ケースバイケースだとは思うのですがどれがいいのかアドバイスお願いします。
1 なるべくstatic使わない方が初心者には良い とたまに聞きます。
  似た名前のローカル変数を複数使っているので混乱する可能性もあるかなと

2 基本的に変動しない小さいマスターデータをdb代わりに使う事が多い と見ました
  こういった使い方には適さないのかもと迷いました

3 普通のゲームと同じくいくつかのシーンをループして進めていくのでオブジェクトが被らないようにシングルトンにする手間や
  処理は一切入れず変数入れとしてこの処理をするならScriotbleObjectでいいのかな?と思ったり

4 形式にもよるのでしょうが一時的な変数をイチイチ外部に書き出すのはどうなのかと