예제 #1
0
        void CreateBoneGO(int index, SpriteBone[] bones, BoneGO[] bonesGO, Transform defaultRoot)
        {
            if (bonesGO[index].go != null)
            {
                return;
            }
            var bone = bones[index];

            if (bone.parentId != -1 && bonesGO[bone.parentId].go == null)
            {
                CreateBoneGO(bone.parentId, bones, bonesGO, defaultRoot);
            }

            var go = new GameObject(bone.name);

            if (bone.parentId == -1)
            {
                go.transform.SetParent(defaultRoot);
            }
            else
            {
                go.transform.SetParent(bonesGO[bone.parentId].go.transform);
            }
            go.transform.localPosition = bone.position * 1 / pixelsPerUnit;
            go.transform.localRotation = bone.rotation;
            bonesGO[index]             = new BoneGO()
            {
                go    = go,
                index = index
            };
        }
예제 #2
0
 BoneGO[] CreateBonesGO(Transform root)
 {
     if (characterMode)
     {
         var characterSkeleton = GetDataProvider <ICharacterDataProvider>().GetCharacterData();
         var bones             = characterSkeleton.bones;
         if (bones != null)
         {
             var boneGOs = new BoneGO[bones.Length];
             for (int i = 0; i < bones.Length; ++i)
             {
                 CreateBoneGO(i, bones, boneGOs, root);
             }
             return(boneGOs);
         }
     }
     return(new BoneGO[0]);
 }