public void DestroySelected() { if (selected != null) { while (selected.transform.childCount != 0) { var tr = selected.transform.GetChild(0); tr.SetParent(null); Destroy(tr.gameObject); } ShowHandles(); BlendshapeEditor.HideMenu(); } }
public static void AddSelectItem(GameObject item) { if (instance.selected.transform.childCount == 0) { instance.selected.transform.position = item.transform.root.position; var sRend = item.transform.root.gameObject.GetComponentInChildren <SkinnedMeshRenderer>(); if (sRend != null) { BlendshapeEditor.ShowMenu(sRend, item.transform.root.gameObject.GetComponentInChildren <InfoOnBlock>()); } else { BlendshapeEditor.HideMenu(); } } if (item.transform.root.gameObject == instance.selected) { var curr = item.transform; for (int i = 0; i < 200; i++) { if (curr == null) { return; } if (curr.gameObject.GetComponent <InfoOnBlock>()) { curr.SetParent(null, true); break; } curr = curr.parent; } } else { item.transform.SetParent(instance.selected.transform, true); } instance.ShowHandles(); }
public static void SelectItem(GameObject item) { if (item == instance.selected) { DeselectAll(); return; } instance.selected.transform.DetachChildren(); instance.selected.transform.position = item.transform.position; item.transform.SetParent(instance.selected.transform, true); instance.ShowHandles(); var sRend = item.GetComponentInChildren <SkinnedMeshRenderer>(); if (sRend != null) { BlendshapeEditor.ShowMenu(sRend, item.GetComponentInChildren <InfoOnBlock>()); } else { BlendshapeEditor.HideMenu(); } }
private void Start() { instance = this; gameObject.SetActive(false); }
public static void SpawnFull(BlockInfo info, Vector3 pos, float[] Blendshapes, Vector3 rot, bool addSelect = true) { var block = ListBlockTypes.AllBlocks.types [info.BlockId]; GameObject[] tile = null; switch (info.TileTypeId) { case 0: switch (info.MyTileKind) { case TileKind.Normal: tile = block.wallTiles [info.UpperVariation].variations; break; case TileKind.InnerCorner: tile = block.wallTiles [info.UpperVariation].innerCorners; break; case TileKind.OuterCorner: tile = block.wallTiles [info.UpperVariation].outerCorners; break; default: break; } break; case 1: switch (info.MyTileKind) { case TileKind.Normal: tile = block.floorTiles [info.UpperVariation].variations; break; case TileKind.InnerCorner: tile = block.floorTiles [info.UpperVariation].innerCorners; break; case TileKind.OuterCorner: tile = block.floorTiles [info.UpperVariation].outerCorners; break; default: break; } break; case 2: switch (info.MyTileKind) { case TileKind.Normal: tile = block.ceilingTiles [info.UpperVariation].variations; break; case TileKind.InnerCorner: tile = block.ceilingTiles [info.UpperVariation].innerCorners; break; case TileKind.OuterCorner: tile = block.ceilingTiles [info.UpperVariation].outerCorners; break; default: break; } break; case 3: tile = block.traps; break; case 4: tile = block.puzzles; break; case 5: tile = block.other; break; default: break; } if (tile.Length == 0) { return; } info.Variation += 10 * tile.Length; info.Variation %= tile.Length; var go = Instantiate(tile [info.Variation]); go.transform.position = pos; if (rot != Vector3.zero) { go.transform.rotation = Quaternion.Euler(rot); } var iOb = go.AddComponent <InfoOnBlock> (); iOb.Info = info; iOb.Blendshapes = Blendshapes; if (iOb.Blendshapes != null) { BlendshapeEditor.ApplyAll(iOb.GetComponent <SkinnedMeshRenderer> (), iOb); } if (addSelect) { BlockManipulator.AddSelectItem(go); } }
public static void DeselectAll() { instance.selected.transform.DetachChildren(); instance.ShowHandles(); BlendshapeEditor.HideMenu(); }