class SpriteHandler extends EditorWindow { var selectedObject : Object; var locPos : Vector3; @MenuItem ("Window/Sprite Handler") static function ShowWindow () { EditorWindow.GetWindow (SpriteHandler); } function OnGUI () { var e : Event = Event.current; GUILayout.Label("Settings", EditorStyles.boldLabel); if(Selection.activeGameObject) { if(!selectedObject) { selectedObject = Selection.activeGameObject; } selectedObject.name = EditorGUILayout.TextField("Object Name: ", selectedObject.name); locPos = selectedObject.transform.localPosition; } if(e.control && e.type == EventType.KeyUp && e.keyCode == KeyCode.UpArrow) { CloneUp(); } if(e.control && e.type == EventType.KeyUp && e.keyCode == KeyCode.DownArrow) { CloneDown(); } if(e.control && e.type == EventType.KeyUp && e.keyCode == KeyCode.LeftArrow) { CloneLeft(); } if(e.control && e.type == EventType.KeyUp && e.keyCode == KeyCode.RightArrow) { CloneRight(); } } function OnInspectorUpdate() { Repaint(); } function CloneUp() { var newObject = Instantiate(selectedObject, Vector3(locPos.x, locPos.y + 1, locPos.z), selectedObject.transform.rotation); selectedObject = newObject; } function CloneDown() { var newObject = Instantiate(selectedObject, Vector3(locPos.x, locPos.y - 1, locPos.z), selectedObject.transform.rotation); selectedObject = newObject; } function CloneLeft() { var newObject = Instantiate(selectedObject, Vector3(locPos.x - 1, locPos.y, locPos.z), selectedObject.transform.rotation); selectedObject = newObject; } function CloneRight() { var newObject = Instantiate(selectedObject, Vector3(locPos.x + 1, locPos.y, locPos.z), selectedObject.transform.rotation); selectedObject = newObject; } }