Exemple #1
0
        public void Optimize(Transform newRoot, Action <DollPartType, Material> processMaterial)
        {
            var newParts = new GameObject();

            newParts.transform.parent = newRoot.transform;
            newParts.name             = "Parts";
            var newSkeleton = GameObject.Instantiate(skeletonRoot, newRoot.transform);

            newSkeleton.name = "Root";

            var reBoner = new ReBoner(newSkeleton);

            foreach (DollPartType partType in DollPartTypes.Values)
            {
                var srcPart = ActiveParts[partType];
                if (srcPart != null)
                {
                    var newPart = GameObject.Instantiate(srcPart.Go, newParts.transform);
                    var newSkin = newPart.GetComponent <SkinnedMeshRenderer>();
                    newSkin.material = new Material(Materials[partType]);
                    reBoner.ReBone(newSkin);
                    if (processMaterial != null)
                    {
                        processMaterial(partType, newSkin.material);
                    }
                }
            }
        }
Exemple #2
0
    public void Optimize(Transform newRoot, Material _mat)
    {
        var newParts = new GameObject();

        newParts.transform.parent = newRoot.transform;
        newParts.name             = "Parts";
        var newSkeleton = GameObject.Instantiate(skeletonRoot, newRoot.transform);

        newSkeleton.name = "Root";

        var reBoner = new ReBoner(newSkeleton);

        foreach (BodyPartEnum partType in bodyparts)
        {
            var srcPart = activeParts[partType];
            if (srcPart != null)
            {
                var newPart = GameObject.Instantiate(srcPart, newParts.transform);
                var newSkin = newPart.GetComponent <SkinnedMeshRenderer>();
                newSkin.material = _mat;
                reBoner.ReBone(newSkin);
            }
        }
    }