SceneModeUtilityについて
これはドキュメント化されていないもの
GetObjects
public static GameObject[] GetObjects (Object[] gameObjects, bool includeChildren)
引数名 | 説明 |
---|---|
gameObjects | 検査するGameObject |
includeChildren | 子要素を含むかどうか |
gameObjectsから関連するGameObjectを取得します。
includeChildrenがfalseの場合はgameObjectsの要素がそのまま返されます。
includeChildrenがtrueの場合は子要素全てのオブジェクトを取得出来ます。
GetSelectedObjectsOfType
public static T[] GetSelectedObjectsOfType<T> (out GameObject[] gameObjects, params Type[] types) where T : Object
引数名 | 説明 |
---|---|
gameObjects | TypeからヒットしたGameObject |
types | 検索したいType |
選択状態のGameObjectからtypesに当てはまるもの(コンポーネント)が存在するかどうかをチェックします。
(例) TがTransformでtypesがなしの場合
SceneModeUtility.GetSelectedObjectsOfType<Transform> (out gameObjects);
Transformのコンポーネントを取得して、gameObjectsにはそのTransformがアタッチされているGameObjectが格納されます。
(例) TがObjectでtypesがMeshFilterとTransformの場合
SceneModeUtility.GetSelectedObjectsOfType<Object> (out gameObjects, typeof(MeshFilter), typeof(Transform));
MeshFilterのコンポーネントを取得して、gameObjectsにはそのMeshFilterがアタッチされているGameObjectが格納されます。
ここで注意するのはTransformのコンポーネントは取得できないということです。最初にヒットしたもののみ取得出来ます。
(例) TがObjectでtypesがなしの場合
SceneModeUtility.GetSelectedObjectsOfType<Object> (out gameObjects);
Transformのコンポーネントを取得して、gameObjectsにはそのTransformがアタッチされているGameObjectが格納されます。(これはGetComponent( Object )だとTransformが取得できる仕様のため)
HasChildren
public static bool HasChildren (Object[] gameObjects);
引数名 | 説明 |
---|---|
gameObjects | チェックしたいObject |
Objectに子要素があるかどうかを返します。
これは、Transform.childCount でチェックを行なっているだけです。
SearchBar
public static Type SearchBar (params Type[] types)
引数名 | 説明 |
---|---|
types | 検索したいType |
typeによってヒエラルキーにあるGameObjectにフィルターを掛けます。 戻り値は現在検索しているTypeを返します。
既に使われている場所は「Occlusion Window」や「Lightmapping Window」の所
type = SceneModeUtility.SearchBar (typeof(SphereCollider),typeof(Rigidbody));
SearchForType
public static void SearchForType (Type type)
引数名 | 説明 |
---|---|
type | 検索したいType |
検索したいTypeを指定すると、ヒエラルキーの上部にあるSearchFieldで検索が行われます。
SceneModeUtility.SearchForType (typeof(SphereCollider));
SetStaticFlags
public static void SetStaticFlags (Object[] gameObjects, int changedFlags, bool flagValue)
引数名 | 説明 |
---|---|
gameObjects | StaticFlagを設定するGameObject |
changedFlags | 設定したいStaticFlag。通常はStaticEditorFlagsを使用するようにする |
flagValue | trueの場合チェックが付く。falseの場合はチェックが外れる |
SceneModeUtility.SetStaticFlags (Selection.gameObjects, (int)StaticEditorFlags.BatchingStatic, true);