conf t

インフラエンジニアのメモ

UnityでInstantiateして子オブジェクトにしたらscaleが変わる

Unityで以下のように生成したGameObjectを子オブジェクトにすると、
なぜかオブジェクトのサイズが変わってしまった。

GameObject targetNode = (GameObject)Instantiate (nodeObj);
targetNode.transform.parent = transform;

SetParentを使うことで解決した。

GameObject targetNode = (GameObject)Instantiate (nodeObj);
targetNode.transform.SetParent(transform, false);

SetParentの第二引数で相対的な大きさにするかを決められる。
ここでfalseを指定することで、プレハブ本来の大きさで子オブジェクトにすることができる。

参考:

Why is Instantiated object's scale changing? - Unity Answers

http://docs.unity3d.com/ScriptReference/Transform.SetParent.htmldocs.unity3d.com