Ejemplo n.º 1
0
        public static void AttachDress(uint presentid, GameObject go)
        {
            var    dData   = XDestructionLibrary.GetPartsInfo(presentid);
            var    present = XAnimationLibrary.AssociatedAnimations(presentid);
            XParts xpart   = go.GetComponent <XParts>();

            if (dData != null && dData.Length > 0)
            {
                SkinnedMeshRenderer[] renders = new SkinnedMeshRenderer[dData.Length];
                for (int i = 0; i < dData.Length; i++)
                {
                    var t = go.transform.Find(dData[i].PerfectPart);
                    if (t == null)
                    {
                        Debug.LogError("DestructionPart config error: " + presentid + " perfectpart: " + dData[i].PerfectPart); continue;
                    }
                    renders[i] = t.GetComponent <SkinnedMeshRenderer>();
                }
                InitWithPerfectPart(dData, "Assets/BundleRes/FBXRawData/" + present.Prefab + "/", renders, xpart);
            }
            else
            {
                XFashionLibrary.DrawRoleWithPresentID(presentid, go);
            }
        }
Ejemplo n.º 2
0
 public static void InitWithPerfectPart(DestructionPart.RowData[] dData, string suff, SkinnedMeshRenderer[] renders, XParts xpart)
 {
     for (int i = 0; i < dData.Length; i++)
     {
         var item = dData[i];
         if (!string.IsNullOrEmpty(item.PerfectPart))
         {
             if (!renders[i].gameObject.activeSelf)
             {
                 renders[i].gameObject.SetActive(true);
             }
             var mesh = AssetDatabase.LoadAssetAtPath <Mesh>(suff + item.PerfectPart + ".asset");
             var mat  = AssetDatabase.LoadAssetAtPath <Material>(suff + item.PerfectPart + ".mat");
             if (mesh != null)
             {
                 renders[i].sharedMesh = mesh;
             }
             if (mat != null)
             {
                 renders[i].sharedMaterial = mat;
             }
             if (xpart != null)
             {
                 for (int k = 0; k < xpart.parts.Count; k++)
                 {
                     if (xpart.parts[k].part == item.PerfectPart)
                     {
                         renders[i].bones = xpart.parts[k].perfect;
                         break;
                     }
                 }
             }
         }
     }
 }