Ejemplo n.º 1
0
 // Use this for initialization
 void Start()
 {
     if (part != null)
     {
         list = SkinnedMeshTools.AddSkinnedMeshTo(mainCharacter, part);
     }
 }
Ejemplo n.º 2
0
    private static Transform FindChildByName(string ThisName, Transform ThisGObj)
    {
        if (ThisGObj.name == ThisName)
        {
            return(ThisGObj.transform);
        }
        IEnumerator enumerator = ThisGObj.GetEnumerator();

        try
        {
            while (enumerator.MoveNext())
            {
                object    obj       = enumerator.Current;
                Transform thisGObj  = (Transform)obj;
                Transform transform = SkinnedMeshTools.FindChildByName(ThisName, thisGObj);
                if (transform != null)
                {
                    return(transform);
                }
            }
        }
        finally
        {
            IDisposable disposable;
            if ((disposable = (enumerator as IDisposable)) != null)
            {
                disposable.Dispose();
            }
        }
        return(null);
    }
Ejemplo n.º 3
0
    public static List <GameObject> AddSkinnedMeshTo(GameObject obj, Transform root, bool hideFromObj)
    {
        List <GameObject> list = new List <GameObject>();

        SkinnedMeshRenderer[] componentsInChildren = obj.GetComponentsInChildren <SkinnedMeshRenderer>();
        foreach (SkinnedMeshRenderer thisRenderer in componentsInChildren)
        {
            list.Add(SkinnedMeshTools.ProcessBonedObject(thisRenderer, root));
        }
        if (hideFromObj)
        {
            obj.SetActiveRecursively(false);
        }
        return(list);
    }
Ejemplo n.º 4
0
 public void doSetup()
 {
     if (this.backpackGo)
     {
         this.backpackGo.SetActive(true);
         SkinnedMeshTools.AddSkinnedMeshTo(this.backpackGo, this.rootTr);
     }
     foreach (GameObject gameObject in this.goList)
     {
         if (gameObject)
         {
             SkinnedMeshTools.AddSkinnedMeshTo(gameObject, this.rootTr);
         }
     }
 }
Ejemplo n.º 5
0
    public void BuildAllPart()
    {
        if (modularParts.Count > 0)
        {
            foreach (var part in modularParts)
            {
                GameObject dummyPart = Instantiate(mainBonesPrefab);
                dummyPart.name = part.name;

                ActiveOnlyMe(part.name);
                SkinnedMeshTools.AddSkinnedMeshTo(characterPrefab, dummyPart.transform, false);
                ActiveOnlyMe(part.name, false);
            }
        }
    }
Ejemplo n.º 6
0
    public static List <GameObject> SpawnSkinnedMeshToUnit(GameObject target_unit, GameObject head, GameObject suit)
    {
        Transform target_skeleton_root = target_unit.transform.FindDeepChild("humanoid");

        List <SkinnedMeshRenderer> suitobjects = suit.GetComponentsInChildren <SkinnedMeshRenderer>().ToList();

        suitobjects.AddRange(head.GetComponentsInChildren <SkinnedMeshRenderer>());

        List <GameObject> skinned_objects = M_Math.InsantiateObjects(suitobjects.Select(skn => skn.gameObject).ToList());


        skinned_objects.ForEach(obj => SkinnedMeshTools.AddSkinnedMeshTo(obj.gameObject, target_skeleton_root));
        //  MDebug.Log("spawn skinned " + skinned_objects.Count);
        return(skinned_objects);
    }
Ejemplo n.º 7
0
 private static Transform FindChildByName(string ThisName, Transform ThisGObj)
 {
     if (ThisGObj.name == ThisName)
     {
         return(ThisGObj.transform);
     }
     foreach (Transform thisGObj in ThisGObj)
     {
         Transform transform = SkinnedMeshTools.FindChildByName(ThisName, thisGObj);
         if (transform != null)
         {
             return(transform);
         }
     }
     return(null);
 }
Ejemplo n.º 8
0
    private static GameObject ProcessBonedObject(SkinnedMeshRenderer ThisRenderer, Transform root)
    {
        GameObject gameObject = new GameObject(ThisRenderer.gameObject.name);

        gameObject.transform.parent = root;
        SkinnedMeshRenderer skinnedMeshRenderer = gameObject.AddComponent(typeof(SkinnedMeshRenderer)) as SkinnedMeshRenderer;

        Transform[] array = new Transform[ThisRenderer.bones.Length];
        for (int i = 0; i < ThisRenderer.bones.Length; i++)
        {
            array[i] = SkinnedMeshTools.FindChildByName(ThisRenderer.bones[i].name, root);
        }
        skinnedMeshRenderer.bones           = array;
        skinnedMeshRenderer.sharedMesh      = ThisRenderer.sharedMesh;
        skinnedMeshRenderer.sharedMaterials = ThisRenderer.sharedMaterials;
        return(gameObject);
    }
Ejemplo n.º 9
0
    public static List <GameObject> AddSkinnedMeshTo(GameObject obj, Transform root, bool hideFromObj)
    {
        List <GameObject> list = new List <GameObject>();

        SkinnedMeshRenderer[] componentsInChildren = obj.GetComponentsInChildren <SkinnedMeshRenderer>();
        SkinnedMeshRenderer[] array = componentsInChildren;
        for (int i = 0; i < array.Length; i++)
        {
            SkinnedMeshRenderer thisRenderer = array[i];
            list.Add(SkinnedMeshTools.ProcessBonedObject(thisRenderer, root));
        }
        if (hideFromObj)
        {
            obj.SetActiveRecursively(false);
        }
        return(list);
    }
Ejemplo n.º 10
0
 public void doSetup()
 {
     if (this.backpackGo)
     {
         this.backpackGo.SetActive(true);
         SkinnedMeshTools.AddSkinnedMeshTo(this.backpackGo, this.rootTr);
     }
     GameObject[] array = this.goList;
     for (int i = 0; i < array.Length; i++)
     {
         GameObject gameObject = array[i];
         if (gameObject)
         {
             SkinnedMeshTools.AddSkinnedMeshTo(gameObject, this.rootTr);
         }
     }
 }
Ejemplo n.º 11
0
 public static List <GameObject> AddSkinnedMeshTo(GameObject obj, Transform root)
 {
     return(SkinnedMeshTools.AddSkinnedMeshTo(obj, root, true));
 }