// Use this for initialization void Start() { if (part != null) { list = SkinnedMeshTools.AddSkinnedMeshTo(mainCharacter, part); } }
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); }
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); }
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); } } }
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); } } }
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); }
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); }
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); }
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); }
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); } } }
public static List <GameObject> AddSkinnedMeshTo(GameObject obj, Transform root) { return(SkinnedMeshTools.AddSkinnedMeshTo(obj, root, true)); }