【Unity】SetActiveとenabledの違いとは?
SetActiveとenabledの違いとは?
Menu関連の処理であれを表示、これを非表示に……としている時にSetActiveとenabledの違いがようやくわかったのでご紹介。
Unityバージョン:Unity 2018.3.13f1
前準備
以下のようなメニューを作成しました。
Closeのボタンが押されたらメニューを閉じたいと思います。
enabled
Buttonには以下のスクリプトをアタッチして確認。
Inspectorから親であるImageを受け取ります。
Closeボタンを押すと……。
Imageだけが消えました。
SetActive
Buttonには以下のスクリプトをアタッチして確認。
Inspectorから親であるImageを受け取ります。
Closeボタンを押すと……。
親のImageだけでなくメニュー全体が消えました。
まとめ
・SetActiveはgameObjectが無効になる(子も無効になる)
・enabledはgameObjectにアタッチされているコンポーネントが無効になる
メニューの表示、非表示等であればSetActiveを使用するほうが便利そうですね。