「Unity/GameObject」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→非アクティブへ) |
|||
(同じ利用者による、間の21版が非表示) | |||
行2: | 行2: | ||
GameObject child = obj.transform.Find("Child1Image").gameObject; | GameObject child = obj.transform.Find("Child1Image").gameObject; | ||
− | == | + | ==子供のオブジェクト一覧取得== |
− | obj.SetActive(true); | + | <pre> |
+ | 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); | ||
+ | } | ||
+ | </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 | ||
+ | |||
+ | ==アクティブ設定== | ||
+ | obj.SetActive(true); // アクティブへ | ||
+ | obj.SetActive(false); // 非アクティブ | ||
+ | |||
+ | ==アクティブ判定== | ||
+ | obj.activeSelf; // true or false | ||
==オブジェクトより手前に== | ==オブジェクトより手前に== | ||
Transform trans1 = GameObject.Find("Object1").transform; | Transform trans1 = GameObject.Find("Object1").transform; | ||
trans1.SetSiblingIndex(0); | trans1.SetSiblingIndex(0); | ||
+ | |||
+ | ==ボタンなどが貼り付けられてるクラスからGameObject取得== | ||
+ | <pre> | ||
+ | GameObject btnObj = GameObject.Find("Button"); | ||
+ | Button btn = btnObj.GetComponent<Button>(); | ||
+ | GameObject obj = btn.gameObject; | ||
+ | </pre> | ||
+ | |||
+ | ==ResourcesからGameObject生成== | ||
+ | Assets/Resources/Sphere.prefabからロード | ||
+ | <pre> | ||
+ | GameObject parent = GameObject.Find("parentObj"); | ||
+ | GameObject prefab = (GameObject)Resources.Load("Sphere"); | ||
+ | Vector3 position = new Vector3(0, 0, 0); | ||
+ | GameObject obj = Instantiate(prefab, position, Quaternion.identity, parent.transform); | ||
+ | </pre> | ||
+ | |||
+ | ===ResourcesのdirからGameObject生成=== | ||
+ | Assets/Resources/Play/Sphere.prefabからロード | ||
+ | GameObject parent = GameObject.Find("parentObj"); | ||
+ | GameObject prefab = (GameObject)Resources.Load("Play/Sphere"); | ||
+ | Vector3 position = new Vector3(0, 0, 0); | ||
+ | GameObject obj = Instantiate(prefab, position, Quaternion.identity, parent.transform); | ||
+ | |||
+ | ==こちらも参照== | ||
+ | [[Unity/Csharp/オブジェクト操作]] [ショートカット] |
2022年4月21日 (木) 22:43時点における版
目次
子供のオブジェクト取得
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); // アクティブへ obj.SetActive(false); // 非アクティブ
アクティブ判定
obj.activeSelf; // true or false
オブジェクトより手前に
Transform trans1 = GameObject.Find("Object1").transform; trans1.SetSiblingIndex(0);
ボタンなどが貼り付けられてるクラスからGameObject取得
GameObject btnObj = GameObject.Find("Button"); Button btn = btnObj.GetComponent<Button>(); GameObject obj = btn.gameObject;
ResourcesからGameObject生成
Assets/Resources/Sphere.prefabからロード
GameObject parent = GameObject.Find("parentObj"); GameObject prefab = (GameObject)Resources.Load("Sphere"); Vector3 position = new Vector3(0, 0, 0); GameObject obj = Instantiate(prefab, position, Quaternion.identity, parent.transform);
ResourcesのdirからGameObject生成
Assets/Resources/Play/Sphere.prefabからロード
GameObject parent = GameObject.Find("parentObj"); GameObject prefab = (GameObject)Resources.Load("Play/Sphere"); Vector3 position = new Vector3(0, 0, 0); GameObject obj = Instantiate(prefab, position, Quaternion.identity, parent.transform);
こちらも参照
Unity/Csharp/オブジェクト操作 [ショートカット]