Version: 2020.1
言語: 日本語
スクリプトでコンポーネントを作成する
タグ

ゲームオブジェクトの非アクティブ化

ゲームオブジェクトを非アクティブとマークすると、シーンから一時的にゲームオブジェクトを削除できます。これを行うには、Inspector に移動し、ゲームオブジェクトの名前の横にあるチェックボックスのチェックを外します (下の画像を参照)。または、スクリプトの ActiveSelf プロパティを使用します。

名前の隣にあるゲームオブジェクトをアクティブにするチェックボックス。赤いボックスでハイライトされています。
名前の隣にあるゲームオブジェクトをアクティブにするチェックボックス。赤いボックスでハイライトされています。

親ゲームオブジェクトの非アクティブ化

親ゲームオブジェクトを非アクティブにすると、その子ゲームオブジェクトもすべて非アクティブになります。

非アクティブにすると、すべての子オブジェクトの activeSelf 設定はオーバーライドされます。そのため、親以下の全階層が非アクティブになります。ここで注意することは、これで子オブジェクトの activeSelf プロパティの値が変わる訳ではないということです。したがって親が再びアクティブになれば、子は当初の状態に戻ります。

ノート: つまり、シーン内の子オブジェクトが現在アクティブであるかどうかは、その activeSelf プロパティでは判断できないということを意味しています。なぜなら、それがアクティブに設定されていたとしても、親の activeSelf プロパティが非アクティブの場合があるからです。

代わりに、シーン内で現在アクティブかどうかを判断したい場合は、activeInHierarchy プロパティを使用します。このプロパティでは、親のオーバーライド効果も考慮されています。

The selected GameObject (Cube) is set as active, but remains inactive because its parent is set to inactive
The selected GameObject (Cube) is set as active, but remains inactive because its parent is set to inactive
スクリプトでコンポーネントを作成する
タグ