private void DestroySelectedObject() { DioramaObject d = WorldBuilderMain.selectedObject.GetComponent <DioramaObject>(); manager.DestoryObject(WorldBuilderMain.selectedObject); WorldBuilderMain.ChooseSelectionModeType(); }
private void PickupSelected() { DioramaObject d = softSelected.GetComponent <DioramaObject>(); manager.mhObjectPoint.position = softSelected.transform.position; //WorldBuilderMain.offsetPosition = softSelected.transform.position - manager.mhObjectPoint.position; WorldBuilderMain.selectedObject = softSelected; WorldBuilderMain.lastObjectPosition = WorldBuilderMain.selectedObject.transform.localPosition; WorldBuilderMain.lastObjectRotation = WorldBuilderMain.selectedObject.transform.localRotation; manager.mhObjectPoint.transform.rotation = WorldBuilderMain.selectedObject.transform.rotation; WorldBuilderMain.objectScale = softSelected.transform.localScale.x; }
private void ReplacePH() { foreach (GameObject ph in placeholders) { DioramaObject dio = ph.GetComponent <DioramaObject>(); BundleItem t = TODV2.GetItemByID(dio.todID); string path = t.TopFolder.ToString() + @"\"; path += t.BundleName + @"\" + (t.FolderPath.Replace(",", @"\")) + @"\"; path += t.prefabName.Replace(".prefab", ""); path += " Rigged"; GameObject next = GameObject.Instantiate(Resources.Load(path, typeof(GameObject)), ph.transform.position, ph.transform.rotation, ph.transform.parent) as GameObject; ph.SetActive(false); } }
public static void SoftSelect() { Collider[] hits = Physics.OverlapSphere(manager.mainPointer.position, manager.dioramaScale / 100f); float nearest = float.MaxValue; foreach (Collider h in hits) { DioramaObject d = GetTopDO(h); if (d && (WorldBuilderMain.currentLayer == 0 || d.layer == WorldBuilderMain.currentLayer || d.layer == 0)) { GameObject go = d.gameObject; if (ignore.Contains(go)) { continue; } float check = Vector3.Distance(manager.mainPointer.position, go.transform.position); if (check < nearest) { nearest = Vector3.Distance(manager.mainPointer.position, go.transform.position); softSelected = go; } } } if (softSelected) { SkinnedMeshRenderer[] smr = softSelected.GetComponentsInChildren <SkinnedMeshRenderer>(); foreach (SkinnedMeshRenderer sr in smr) { lastMats2.Add(sr, sr.materials); sr.material = manager.nodeS; } Renderer[] rend = softSelected.GetComponentsInChildren <Renderer>(); foreach (Renderer r in rend) { lastMats.Add(r, r.materials); r.material = manager.nodeS; } } }
private void StampCopy() { //LowPolyWaterScript lpws = WorldBuilderMain.selectedObject.GetComponentInChildren<LowPolyWaterScript>(); //if (lpws != null) //{ // //lpws.sun = manager.dioramaLight.GetComponent<Light>(); //} GameObject go = Common.CopyGo(WorldBuilderMain.selectedObject, new Vector3(WorldBuilderMain.objectScale, WorldBuilderMain.objectScale, WorldBuilderMain.objectScale), manager.currentModeParent, false, false); DioramaObject d = go.GetComponent <DioramaObject>(); if (WorldBuilderMain.currentLayer != 0) { d.layer = WorldBuilderMain.currentLayer; } else { d.layer = WorldBuilderMain.selectedObject.GetComponent <DioramaObject>().layer; } DestroyAnimator(); }
private void SpawnNewObject(Node n) { manager.mhObjectPoint.position = manager.mainPointer.position; Vector3 scale = new Vector3(objectScale, objectScale, objectScale); manager.mhObjectPoint.transform.rotation = n.go.transform.rotation; GameObject next = Common.CopyGo(n.go, scale, null, true, true); selectedObject = next; next.transform.localScale = scale; SetTag(next.transform, "TableObject", LayerMask.NameToLayer("PlayTable")); DioramaObject d = next.AddComponent <DioramaObject>(); d.layer = currentLayer; selectedTodObj.todID = n.todID; selectedTodObj.layer = WorldBuilderMain.currentLayer; selectedTodObj.gridScale = n.gridScale; n.SoftReset(); next.transform.parent = manager.currentModeParent; next.transform.localScale = scale; }
IEnumerator RebuildGo(DioramaObjectSaver dos, Transform transform, bool addCollider = true) { GameObject go = null; if (dos.todID >= 0) { BundleItem t = TODV2.GetItemByID(dos.todID); string path = t.TopFolder.ToString() + @"\"; path += t.BundleName + @"\" + (t.FolderPath.Replace(",", @"\")) + @"\"; path += t.prefabName.Replace(".prefab", ""); if (t.loadFromResources) { go = GameObject.Instantiate(Resources.Load(path, typeof(GameObject))) as GameObject; } else { try { AssetBundle ab = AssetBundleManager.GetAssetBundle(t.BundleName).assetBundle; go = Instantiate(ab.LoadAsset(t.PrefabName, typeof(GameObject))) as GameObject; Common.ReassignTextures(go, t.HasLight); } catch (Exception e) { Debug.Log(t.prefabName + " ID: " + t.id + " failed to load -- " + e.StackTrace); } } Common.ReassignTextures(go, t.HasLight); go.name = "Object"; go.transform.parent = transform; go.transform.localPosition = dos.savedPos; go.transform.localRotation = dos.savedRot; go.transform.localScale = dos.savedScale; DioramaObject newDio = go.AddComponent <DioramaObject>(); newDio.todID = dos.todID; newDio.savedPos = dos.savedPos; newDio.savedRot = dos.savedRot; newDio.savedScale = dos.savedScale; newDio.gridScale = t.gridScale; newDio.layer = dos.layer == 0 ? 1 : dos.layer; Common.DestroyAll(go); CheckAnimation(go); List <CharPose> pose = dos.savedCharPose; Transform[] allTrans = go.GetComponentsInChildren <Transform>(); for (int i = 0; i < allTrans.Count(); i++) { CharPose next = pose[i]; allTrans[i].localPosition = next.savedPos; allTrans[i].localRotation = next.savedRot; } TextMeshPro tmp = go.GetComponentInChildren <TextMeshPro>(); if (tmp) { tmp.text = dos.text; } if (go.tag == "Untagged") { go.tag = "TableObject"; } //IEventScale ies = go.GetComponentInChildren<IEventScale>(); //if (ies != null) //{ // go.transform.localScale = Vector3.one; // for (int i = 0; i < dos.savedScale.x; i++) // { // ies.ScaleUp(); // } //} } yield return(null); }