この状態で以下のスクリプトのコンポーネントを使って、GetRootGameObjects()を呼ぶとどのGameObjectが返るか見てみましょう。Dシーン直下においてあるGameObjectであるA,B,Dが取得できることが確認できました。GameObjectのルートオブジェクトが誰なのかを調べようGameObjectが持つTransformのプロパティrootは、このTransformの親をたどっていき、ルート直下にあるGameObjectのTransformを取得することが出来ます。自分自身がルートオブジェクトの場合は自分自身が返るのでnullになることはないみたいです。docs.unity3d.com先ほどのシーンにて、各オブジェクトに以下のスクリプトのコンポーネントを付けてどのような値が返るか調べてみましょう。Dシーン直下においてあるGameObjectが取得できることが確認できました。各ルートオブジェクトを比較してみよう。これで各シーン上にあるルートオブジェクトと各GameObjectのルートオブジェクトが取得できました。あとはこれらを比較してあげることで、このGameObjectがどのシーンにあるものなのかがわかりそうですね。null;}このような複数のシーンがある状態で、各GameObjectで先ほどの関数を呼んでみましょう。Scene=SceneCこれで指定したGameObjectがどのシーンにあるかがわかるようになりました。先ほどの関数を少し変えれば、指定したGameObjectが現在アクティブなシーンにあるかの判定などもできたりします。false;}先ほどのシーンで試すと以下のような結果になります。IsinActiveScene=FalseDontDestroyOnLoadのオブジェクトの場合はどうなるの先ほどまで使っていたシーンに新しくオブジェクトGを追加してみましょう。このオブジェクトGはアクティブなシーンであるSceneA内にありますが、Awake()にてDontDestroyOnLoad()を呼んでシーン移動では破棄されない状態にします。この状態ではどのような結果になるのでしょうか。先ほどのコンポーネントを使って検証してみます。IsinActiveScene=Falseどのシーンにも所属していないことがわかりました。DontDestroyOnLoad()を使ったGameObjectは、各シーンと関係が解消されるようですね。所感GameObjectがどのGameObjectの子なのか親なのかを判断が必要な場面に比べれば、どのシーンにあるかを気にすることは少ないため、今回の件を利用できる機会は少ないかとは思います。それでも、いろいろな関数やプロパティを組み合わせることで、何とかなるみたいですね。0から...2018-06-25【Unity】GameObjectがどのシーンにあるのかがプロパティ経由で取得できることを今更ながら...悪魔の証明という言葉あります。「悪魔はいる」という主張を証...2017-10-24【Unity】さあ、索敵をはじめよう現実世界の自分の敵はなかなか見つけにくいけど、ゲームの中で...2017-08-18【Unity】Rigidbody.AddForceAtPositionで吹き飛ばす最近暑くなってきましたね。今回はそんな夏の暑さを吹き飛ばす...2017-07-28【Unity】僕はAwake()のことを知っているようで知らなかったんだAwake()はインスタンス化したときに必ず呼ばれる。アナウンサーを応援しています。引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。