AddSkinnedMeshParts 스크립트를 사용해서 기본 뼈대에 캐릭터 파츠를 불러오고 간단하게 애니메이션을 확인할 수 있도록 작성해보았다. (파츠 교체 시스템 기본 구성)

 

실행시 결과

 

게임오브젝트 구성 내용 (남자 캐릭터)

남자 캐릭터 파츠 구성
남자 캐릭터 애니메이션 (레거시)

 

게임오브젝트 구성 내용 (여자 캐릭터)

여자 캐릭터 파츠 구성
여자 캐릭터 애니메이션 (레거시)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
 
public class AddSkinnedMeshParts : MonoBehaviour
{
    [SerializeField] GameObject[] parts;
 
    void Start()
    {
        foreach (var part in parts)
        {
           AddSkinnedMeshRenderer(part);
        }
    }
 
    public void AddSkinnedMeshRenderer(GameObject newSkinnedMesh)
    {
        // add skinned mesh
       var newSkinnedMeshRenderer = newSkinnedMesh.GetComponentInChildren<SkinnedMeshRenderer>();
       SkinnedMeshRenderer skinnedMeshRenderer = Instantiate(newSkinnedMeshRenderer, transform);
 
        Transform[] childrens = transform.GetComponentsInChildren<Transform>(true);
 
        // sort bones.
        Transform[] bones = new Transform[newSkinnedMeshRenderer.bones.Length];
        for (int boneOrder = 0; boneOrder < newSkinnedMeshRenderer.bones.Length; boneOrder++)
        {
            bones[boneOrder] = System.Array.Find<Transform>(childrens, c => c.name == newSkinnedMeshRenderer.bones[boneOrder].name);
        }
       skinnedMeshRenderer.bones = bones;
    }
}
 
cs

 

AddSkinnedMeshParts.cs
0.00MB

 

 

LOWPOLY - Universal Character 유니티 에셋으로 테스트 구성한 프로젝트 패키지

PKG_Make_Parts_Prefab_and_Using_Parts_with_AddSkinnedMeshParts.unitypackage
2.43MB

+ Recent posts