public void changeStackParent(GameObject selected, GameObject newParent) { isActive = true; selectedObject = selected; scriptOfSelectedObject = (ObjectScript)selected.GetComponent("ObjectScript"); if (scriptOfSelectedObject == null) { isActive = false; return; } parentObject = scriptOfSelectedObject.getParent(); if (parentObject == null) { isActive = false; return; } scriptOfParentObject = (ObjectScript)parentObject.GetComponent("ObjectScript"); ObjectScript npScript = (ObjectScript)newParent.GetComponent("ObjectScript"); if (!npScript) { return; } if (npScript.canBeStackedOn == false) { return; } scriptOfParentObject.detachChild(selected); parentObject = newParent; scriptOfParentObject = npScript; ((SmoothCameraScript)GetComponent("SmoothCameraScript")).changeViewedObject(newParent); topDownAxisInverted = topDownAxisIsInverted(); calculateDimensions(); if (gridModus) { selected.transform.parent = null; selected.transform.rotation = parentObject.transform.rotation; goToDefaultPositionGrid(); scriptOfParentObject.addChildInGrid(selected, currColInGrid, currRowInGrid); } else { selected.transform.parent = null; selected.transform.rotation = parentObject.transform.rotation; goToDefaultPosition(); scriptOfSelectedObject.addChild(selected, currLeftRightOnObject, currTopDownOnObject); } }
// The object will be cloned and placed onto selectedObject public void End() { if (!isActive) { return; } GameObject clone = null; if (currentPossibleStackedObject) { Vector3 temp = currentPossibleStackedObject.transform.position; Quaternion temp2 = currentPossibleStackedObject.transform.rotation; ObjectScript oscript = (ObjectScript)currentPossibleStackedObject.GetComponent("ObjectScript"); string name_ = (string)(oscript.clone()); clone = GameObject.Find(name_); clone.transform.position = temp; clone.transform.rotation = temp2; if (gridModus) { scriptOfSelectedObject.addChildInGrid(clone, currColInGrid, currRowInGrid); } else { scriptOfSelectedObject.addChild(clone, currLeftRightOnObject, currTopDownOnObject); } temp.y = -50f; currentPossibleStackedObject.transform.position = temp; } foreach (GameObject obj in lines) { Destroy(obj); } lines.Clear(); ((SmoothCameraScript)GetComponent("SmoothCameraScript")).returnFromTopview(); isActive = false; }
public void changeStackParent(GameObject selected, GameObject newParent){ isActive = true; selectedObject = selected; scriptOfSelectedObject = (ObjectScript) selected.GetComponent("ObjectScript"); if(scriptOfSelectedObject == null){ isActive = false; return; } parentObject = scriptOfSelectedObject.getParent(); if(parentObject == null){ isActive = false; return; } scriptOfParentObject = (ObjectScript) parentObject.GetComponent("ObjectScript"); ObjectScript npScript = (ObjectScript) newParent.GetComponent("ObjectScript"); if(!npScript) return; if(npScript.canBeStackedOn == false) return; scriptOfParentObject.detachChild(selected); parentObject = newParent; scriptOfParentObject = npScript; ((SmoothCameraScript) GetComponent("SmoothCameraScript")).changeViewedObject(newParent); topDownAxisInverted = topDownAxisIsInverted(); calculateDimensions(); if(gridModus){ selected.transform.parent = null; selected.transform.rotation = parentObject.transform.rotation; goToDefaultPositionGrid(); scriptOfParentObject.addChildInGrid(selected, currColInGrid, currRowInGrid); } else{ selected.transform.parent = null; selected.transform.rotation = parentObject.transform.rotation; goToDefaultPosition(); scriptOfSelectedObject.addChild(selected, currLeftRightOnObject, currTopDownOnObject); } }