>これだとDontDestroyOnLoad only work for root GameObjects or components on root GameObjects.と出ます

これはエラーログだろ
エラーログっていうのは、どこが間違っているのか教えてくれてる文章の事

このエラーログを日本語に直せば「ルートオブジェクトでしかDontDestroyOnLoadは動かない」
って書いてあるからルートオブジェクト以外のコンポに書いているからこのエラーが出ているという事と
ルートオブジェクトに書けば解決するという事が分かる

というかエラーログが全く意味を成してないなw