概要
using UnityEditor; using UnityEngine; using UnityEngine.SceneManagement; public static class Example { // すべてのゲームオブジェクトを Scene ビューで非表示にします [MenuItem( "SceneVisibilityManager/HideAll" )] private static void HideAll() { SceneVisibilityManager.instance.HideAll(); EditorApplication.RepaintHierarchyWindow(); } // すべてのゲームオブジェクトを Scene ビューに表示します [MenuItem( "SceneVisibilityManager/ShowAll" )] private static void ShowAll() { SceneVisibilityManager.instance.ShowAll(); EditorApplication.RepaintHierarchyWindow(); } // 指定したシーン内のゲームオブジェクトを Scene ビューで非表示にします [MenuItem( "SceneVisibilityManager/HideScene" )] private static void HideScene() { var scene = SceneManager.GetActiveScene(); SceneVisibilityManager.instance.Hide( scene ); EditorApplication.RepaintHierarchyWindow(); } // 指定したシーン内のゲームオブジェクトを Scene ビューに表示します [MenuItem( "SceneVisibilityManager/ShowScene" )] private static void ShowScene() { var scene = SceneManager.GetActiveScene(); SceneVisibilityManager.instance.Show( scene ); EditorApplication.RepaintHierarchyWindow(); } // 指定したゲームオブジェクトと子オブジェクトを Scene ビューで非表示にします [MenuItem( "SceneVisibilityManager/HideGameObject" )] private static void HideGameObject() { var gameObject = GameObject.Find( "Hoge" ); SceneVisibilityManager.instance.Hide( gameObject, true ); EditorApplication.RepaintHierarchyWindow(); } // 指定したゲームオブジェクトと子オブジェクトを Scene ビューに表示します [MenuItem( "SceneVisibilityManager/ShowGameObject" )] private static void ShowGameObject() { var gameObject = GameObject.Find( "Hoge" ); SceneVisibilityManager.instance.Show( gameObject, true ); EditorApplication.RepaintHierarchyWindow(); } }
SceneVisibilityManager クラスを使用することで
ゲームオブジェクトを Scene ビューに表示するかどうかを変更できます