三流豆腐。

三流のゲームプログラマ。C/C++/C#/Objective-C/python/技術向上を目指します。

【Unity】SetActiveとenabledの違いとは?

SetActiveとenabledの違いとは?

Menu関連の処理であれを表示、これを非表示に……としている時にSetActiveとenabledの違いがようやくわかったのでご紹介。

Unityバージョン:Unity 2018.3.13f1

 

前準備

以下のようなメニューを作成しました。

Closeのボタンが押されたらメニューを閉じたいと思います。

f:id:tofu_doon:20190512160243p:plain

f:id:tofu_doon:20190512160254p:plain

 

 

enabled

Buttonには以下のスクリプトをアタッチして確認。

Inspectorから親であるImageを受け取ります。

f:id:tofu_doon:20190512160337p:plain

Closeボタンを押すと……。

Imageだけが消えました。

f:id:tofu_doon:20190512160637p:plain

f:id:tofu_doon:20190512160717p:plain

 

SetActive

Buttonには以下のスクリプトをアタッチして確認。

Inspectorから親であるImageを受け取ります。

f:id:tofu_doon:20190512160829p:plain

Closeボタンを押すと……。

親のImageだけでなくメニュー全体が消えました。

f:id:tofu_doon:20190512160913p:plain

 

まとめ

・SetActiveはgameObjectが無効になる(子も無効になる)

・enabledはgameObjectにアタッチされているコンポーネントが無効になる

メニューの表示、非表示等であればSetActiveを使用するほうが便利そうですね。