「Unity/GameObject」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→子供のオブジェクト一覧取得) |
(→配下のオブジェクトすべて取得) |
||
行15: | 行15: | ||
</pre> | </pre> | ||
==配下のオブジェクトすべて取得== | ==配下のオブジェクトすべて取得== | ||
+ | <pre> | ||
+ | public void AllUnderObject(GameObject obj) | ||
+ | { | ||
+ | Transform transforms = obj.GetComponentInChildren<Transform>(); | ||
+ | if (transforms.childCount > 0) | ||
+ | { | ||
+ | foreach (Transform transform in transforms) | ||
+ | { | ||
+ | AllUnderObject(transform.gameObject); // 再帰処理 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
参考:http://sonnahiga.blog.fc2.com/blog-entry-18.html | 参考:http://sonnahiga.blog.fc2.com/blog-entry-18.html | ||
2021年11月24日 (水) 12:06時点における版
目次
子供のオブジェクト取得
GameObject child = obj.transform.Find("Child1Image").gameObject;
子供のオブジェクト一覧取得
Transform transforms = obj.GetComponentInChildren<Transform>(); if (transforms.childCount == 0) { return; } foreach (Transform transform in transforms) { GameObject body = transform.gameObject; Debug.Log("body.name=" + body.name); }
配下のオブジェクトすべて取得
public void AllUnderObject(GameObject obj) { Transform transforms = obj.GetComponentInChildren<Transform>(); if (transforms.childCount > 0) { foreach (Transform transform in transforms) { AllUnderObject(transform.gameObject); // 再帰処理 } } }
参考:http://sonnahiga.blog.fc2.com/blog-entry-18.html
非アクティブへ
obj.SetActive(true);
オブジェクトより手前に
Transform trans1 = GameObject.Find("Object1").transform; trans1.SetSiblingIndex(0);
ボタンなどが貼り付けられてるクラスからGameObject取得
GameObject btnObj = GameObject.Find("Button"); Button btn = btnObj.GetComponent<Button>(); GameObject obj = btn.gameObject;
こちらも参照
Unity/Csharp/オブジェクト操作 [ショートカット]