(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


Scene上だけ非表示にしたり、選択できないようにするSceneVisibilityManager【Unity】【エディタ拡張】


このエントリーをはてなブックマークに追加



この記事でのバージョン
Unity 6000.0.42f1


はじめに

UnityはHierarchyの左側のアイコンを押すことで、

Sceneビュー上で非表示にしたり、選択できないようにしたり出来ます。

(切り替えてもGameビュー上では普通に表示される)


今回はこれをプログラムで操作する方法の紹介です!


SceneVisibilityManager

この操作をするには、SceneVisibilityManagerというクラスを使います。



表示(Hierarchy上の目のアイコン)を切り替えるには以下のようなメソッドを実行します。

using UnityEditor;//SceneVisibilityManager使うのに必要、Unityエディタ上でしか使えない
//全オブジェクト表示
SceneVisibilityManager.instance.ShowAll();

//全オブジェクト非表示
SceneVisibilityManager.instance.HideAll();
//指定したオブジェクトを非表示にする(第2引数をtrueすると子オブジェクトも処理)
SceneVisibilityManager.instance.Hide(obj, true);

//指定したオブジェクトを表示する(第2引数をtrueすると子オブジェクトも処理)
SceneVisibilityManager.instance.Show(obj, true);
//指定したオブジェクトを表示を切り替える(第2引数をtrueすると子オブジェクトも処理)
SceneVisibilityManager.instance.ToggleVisibility(obj, true);


選択(Hierarchy上の手のアイコン)を切り替える場合も同様に

DisableAllPicking、EnablePicking、TogglePicking等のPicking系のメソッドを実行します。