public static Bone InitSubBones(Bone bone) { bone.SubBones = new Bone[0]; for (var i = 0; i < bone.transform.childCount; i++) { var child = bone.transform.GetChild(i).gameObject; if (!child.GetComponent <Bone>()) { child.AddComponent <Bone>(); } bone.AddSubBone(InitSubBones(child.GetComponent <Bone>())); } return(bone); }