static void Prefix(Region __instance, Unit unit, ItemPutInfo info, ItemObject item, bool immobile, HomeRegionType ___regionType, int fromArchive = -1) { if (!enabled || ___regionType != HomeRegionType.Farm || __instance.IsValidCell(info.cellIndex)) { return; } ItemHomeSystemUnitCmpt component = item.GetComponent <ItemHomeSystemUnitCmpt>(); Area area = Module <UnitFactory> .Self.GetArea(info.cellIndex, info.areaRot, component, component.Rotate > 0, fromArchive); Slot slot = new Slot { unit = unit, info = info, immobile = immobile, unitObjInfo = new UnitObjInfo(item, area) }; if (outsideUnits.ContainsKey(info.cellIndex)) { outsideUnits[info.cellIndex] = slot; } else { outsideUnits.Add(info.cellIndex, slot); } }
static bool Prefix(PlantingBoxUnit ___cisternUnit) { if (!enabled || !settings.InstantFertilize) { return(true); } ItemObject curUseItem = Module <Player> .Self.bag.itemBar.GetCurUseItem(); if (curUseItem != null) { ItemNutrientCmpt nutri = curUseItem.GetComponent <ItemNutrientCmpt>(); if (nutri != null) { UIStateMgr.Instance.ChangeStateByType(UIStateMgr.StateType.Empty, false, null); UIUtils.ShowNumberSelectMinMax(curUseItem.ItemDataId, 1, Mathf.Min(curUseItem.Number, (int)(((float)___cisternUnit.MaxNutrient - ___cisternUnit.CurrentNutrient) / (float)nutri.Point)), 1, string.Empty, delegate(int o) { Module <Player> .Self.bag.itemBar.RemoveCurItem(o); ___cisternUnit.TryAddNutrient((float)(nutri.Point * o), true); UIStateMgr.Instance.PopState(false); }, delegate() { UIStateMgr.Instance.PopState(false); }, false, 0, string.Empty); } } return(false); }
protected void PickUpItem(ItemObject item) { item.transform.parent = WeaponPoint; item.transform.localPosition = Vector3.zero; item.transform.localRotation = Quaternion.identity; item.GetComponent <BoxCollider>().enabled = false; }
static bool Prefix(PlantingBoxUnit ___boxUnit, UnityEngine.Transform ___addNutriParticleParent) { if (!enabled || !settings.InstantFertilize) { return(true); } ItemObject curUseItem = Module <Player> .Self.bag.itemBar.GetCurUseItem(); if (curUseItem != null) { ItemNutrientCmpt nutri = curUseItem.GetComponent <ItemNutrientCmpt>(); if (nutri != null && ___boxUnit.CanAddNutrient(nutri.Point)) { Module <Player> .Self.bag.itemBar.RemoveCurItem(1); ___boxUnit.TryAddNutrient((float)nutri.Point, true); GameObject addNutriParticle = GameUtils.AddChildToTransform(___addNutriParticleParent, "FX_ApplyFertilizer", false, AssetType.Effect); ParticleSystem componentInChildren = addNutriParticle.GetComponentInChildren <ParticleSystem>(); componentInChildren.Play(); Singleton <TaskRunner> .Instance.RunDelayTask(componentInChildren.main.duration, false, delegate { UnityEngine.Object.Destroy(addNutriParticle); }); } } return(false); }
public void Render() { item.Slot = this; item.transform.position = this.bounds.center; var itemSize = item.GetSize(); var scale = Math.Min(size.x / itemSize.x, size.y / itemSize.y) * 0.85f; item.transform.localScale = item.transform.localScale * scale; item.GetComponent <SpriteRenderer>().sortingOrder = this.GetComponent <SpriteRenderer>().sortingOrder + 1; }
private void DropLoot() { if (lootDrops.Count <= 0 || lootDrops == null) { return; } int dropAmount = Random.Range(1, 5); for (int i = 0; i < dropAmount; i++) { int randomIndex = Random.Range(0, lootDrops.Count); int nextItemSpawnID = lootDrops[randomIndex]; Item itemToDrop = GameManager.Instance.ItemDatabase.GetItem(nextItemSpawnID); //GameObject lootItemInstace = Instantiate(GameManager.Instance.ItemDatabase.GetSpawnablePrefab(nextItemSpawnID), transform.position, Quaternion.identity); ItemObject lootItemInstance = Instantiate(Resources.Load <GameObject>("Prefabs/Items/prefab_item_base"), transform.position, Quaternion.identity).GetComponent <ItemObject>(); lootItemInstance.SetItem(itemToDrop); lootItemInstance.GetComponent <ItemObject>().MoveItemInRandomDirection(); } }
/* <summary> * Load 버튼을 누를 경우 SQLlite에 있는 db값을 바탕으로 아이템을 하나씩하나씩 소환하는 함수 * </summary>*/ /// <param name="_loadItem"> 로드할 객체 </param> /// <param name="_currentPosition"> 객체가 소환될 위치 </param> /// <param name="_currentRotate"> 객체가 가질 회전 값 </param> public void LoadItem(int _originNumber, Item _loadItem, string _objectName, Vector3 _currentPosition, Vector3 _currentRotate, Vector3 _currentScale) { GameObject _loadObject = Instantiate(_loadItem.item3d) as GameObject; _loadObject.transform.SetParent(_inDoor.transform); _loadObject = _loadObject.transform.GetChild(0).gameObject; _loadObject.layer = LayerMask.NameToLayer("Default"); _loadObject.AddComponent <ItemObject>(); /* 빠른 연결을 위한 캐싱 작업 */ ItemObject _tmp = _loadObject.GetComponent <ItemObject>(); Item _tmpItem; _tmpItem = new Item(_objectName, _itemListControl._itemDBIndex, _originNumber, _loadObject); /* 추가한 ItemObject에 현재 Item의 정보를 담음 */ _tmp._thisItem = _tmpItem; _itemListControl.AddDB(_tmpItem); _tmp.GetComponent <ItemObject>()._thisItem._objectNumber = _itemListControl._itemDBIndex; // _loadObject.AddComponent<Outline>(); ///* 윤곽선 안보이게 처리! */ // _loadObject.GetComponent<Outline>().enabled = false; /* 위치 설정 */ _loadObject.transform.parent.position = _currentPosition; /* 회전값 설정 */ _loadObject.transform.parent.Rotate(_currentRotate); /* 크기값 설정*/ _loadObject.transform.parent.localScale = _currentScale; }
void OnGUI() { if (isInventoryOn) { if (holdItem != null) //shows the held item button to the button right of the mouse (reminds user of held item) { holdItemButton.x = Input.mousePosition.x + 10; holdItemButton.y = Screen.height - Input.mousePosition.y + 20; GUI.Button(holdItemButton, holdItem.itemInfo.name); holdItemLabel.x = Input.mousePosition.x + 10 + (300 - labelSpacing - spacing - spacing - labelWidth); holdItemLabel.y = Screen.height - Input.mousePosition.y + 20; if (holdItem.itemInfo.GetType() == typeof(Container)) { GUI.Label(holdItemLabel, holdItem.itemInfo.volume + "/" + ((Container)holdItem.itemInfo).holdVolume); } else { GUI.Label(holdItemLabel, holdItem.itemInfo.volume.ToString()); } } //used to drop the item out into the real game world if (holdItem != null && Event.current.type == EventType.MouseDown && //canDropItem() && !inventoryRect.Contains(Event.current.mousePosition) && Event.current.button == 0) { if (st.workbench == null) { Debug.Log("dropping item"); if (holdItem != curArmor && holdItem != curWeapon) //if the item isn't an equip (inside the main bag) { removeFill(holdItem, holdItem.transform.parent.GetComponent <ItemObject>()); //remove the weight and volume from the old bags getItemBagList(holdItem).RemoveAt(getBagIndex(holdItem)); //remove the object from its old bag } else if (holdItem == curWeapon) { curWeapon = weaponSlot; } else if (holdItem == curArmor) { curArmor = armorSlot; } Debug.Log("dropping hold item"); if (holdItem.GetComponent <Rigidbody>().isKinematic) { holdItem.GetComponent <Rigidbody>().isKinematic = false; } dropHoldItem(); //drop the held item } else if (st.workbench != null && holdItem.itemInfo.GetType() == typeof(Consumable)) //if using the work bench, drop consumable on table { RaycastHit hitobj; Ray ray = GetComponent <Camera>().ScreenPointToRay(Input.mousePosition); Vector3 placePoint; if (Physics.Raycast(ray, out hitobj)) { removeFill(holdItem, holdItem.transform.parent.GetComponent <ItemObject>()); //remove the weight and volume from the old bags getItemBagList(holdItem).RemoveAt(getBagIndex(holdItem)); //remove the object from its old bag placePoint = hitobj.point; holdItem.gameObject.SetActive(true); holdItem.transform.position = placePoint; holdItem.transform.rotation = Quaternion.identity; holdItem.GetComponent <Rigidbody>().isKinematic = true; holdItem.transform.parent = null; holdItem = null; } } } if (st.workbench != null) { if (GUI.Button(new Rect(Screen.width - 100, 0, 100, 24), "Assemble")) { string createObjectName = st.workbench.GetComponent <Workbench>().assemble(); if (createObjectName != "") { GameObject newObject = (GameObject)Instantiate(Resources.Load(createObjectName), st.workbench.GetComponent <Workbench> ().dropCraft.position, st.workbench.GetComponent <Workbench> ().dropCraft.rotation); newObject.name = createObjectName; } //old broken code // else // { // GameObject newObject = (GameObject)Instantiate (Resources.Load (createObjectName), // st.workbench.GetComponent<Workbench> ().dropCraft.position, // st.workbench.GetComponent<Workbench> ().dropCraft.rotation); // newObject.name = createObjectName; // } } GUI.Box(new Rect(Screen.width - 100, 28, 100, st.workbench.GetComponent <Workbench>().craftList.Count *28), ""); for (int i = 0; i < st.workbench.GetComponent <Workbench>().craftList.Count; i++) { GUI.Label(new Rect(Screen.width - 100 + 4, i * 28 + 28, 92, 24), st.workbench.GetComponent <Workbench>().craftList[i].name); } } //create inventory window here inventoryRect = ClampToScreen(GUI.Window(0, inventoryRect, InventoryWindow, "Inventory")); } }
public void LoadHuman(int _originNumber, Item _loadItem, string _objectName, Vector3 _currentPosition, Vector3 _currentRotate, Vector3 _currentScale, int _humanNumber) { GameObject _loadObject = Instantiate(_loadItem.item3d) as GameObject; _loadObject.transform.SetParent(_inDoor.transform); _loadObject = _loadObject.transform.GetChild(0).gameObject; _loadObject.layer = LayerMask.NameToLayer("Default"); _loadObject.AddComponent <ItemObject>(); /* 빠른 연결을 위한 캐싱 작업 */ ItemObject _tmp = _loadObject.GetComponent <ItemObject>(); Item _tmpItem; _tmpItem = new Item(_objectName, _itemListControl._itemDBIndex, _originNumber, _loadObject); _tmpItem._loadHumanNumber = _humanNumber; /* 추가한 ItemObject에 현재 Item의 정보를 담음 */ _tmp._thisItem = _tmpItem; _tmp._thisItem.itemName = _objectName; _tmp._humanInitPosition = _currentPosition; _tmp._humanInitRotation = _currentRotate; _itemListControl.AddHuman(_tmpItem); _tmp.GetComponent <ItemObject>()._thisItem._objectNumber = _itemListControl._humanDBIndex; _tmp.GetComponent <ItemObject>()._thisHuman = new HumanItem("Idle", _itemListControl._humanDBIndex - 1); // _loadObject.AddComponent<Outline>(); ///* 윤곽선 안보이게 처리! */ // _loadObject.GetComponent<Outline>().enabled = false; /* 위치 설정 */ _loadObject.transform.parent.position = _currentPosition; /* 회전값 설정 */ _loadObject.transform.Rotate(_currentRotate); /* 크기값 설정*/ _loadObject.transform.parent.localScale = _currentScale; /* 스케줄러 생성 파트*/ int _objectNumber = _itemListControl._humanDBIndex; //스몰바 생성 및 설정 GameObject _smallBar = Instantiate(Resources.Load("Prefab/SmallScheduler_Sample")) as GameObject; if (_originNumber == 2001) //클릭했을때의 오브젝트의 오리진 넘버로 구별 { _smallBar.name = "Man" + (_objectNumber); //스몰바의 이름 설정 _smallBar.transform.GetChild(0).transform.GetChild(0).transform.GetChild(0).GetComponent <Text>().text = "" + _objectName + _objectNumber; //스몰바의 텍스트설정 } else if (_originNumber == 2000) { _smallBar.name = "Daughter" + (_objectNumber); //스몰바의 이름 설정 _smallBar.transform.GetChild(0).transform.GetChild(0).transform.GetChild(0).GetComponent <Text>().text = "" + _objectName + _objectNumber;; //스몰바의 텍스트설정 } else if (_originNumber == 2002) { _smallBar.name = "Woman" + (_objectNumber); //스몰바의 이름 설정 _smallBar.transform.GetChild(0).transform.GetChild(0).transform.GetChild(0).GetComponent <Text>().text = "" + _objectName + _objectNumber;; //스몰바의 텍스트설정 } else if (_originNumber == 2003) { _smallBar.name = "Woongin" + (_objectNumber); //스몰바의 이름 설정 _smallBar.transform.GetChild(0).transform.GetChild(0).transform.GetChild(0).GetComponent <Text>().text = "" + _objectName + _objectNumber;; //스몰바의 텍스트설정 } //content 설정 GameObject _smallContent; _smallContent = GameObject.Find("Canvas").transform.GetChild(2).transform.GetChild(4).transform.GetChild(1).transform.GetChild(0).transform.GetChild(0).transform.GetChild(1).gameObject; _smallBar.transform.SetParent(_smallContent.transform); //small Bar의 부모설정 _smallBar.transform.localScale = new Vector3(1, 1, 1); //크기 지정 //small Bar의 정보 _smallBar.GetComponent <SmallSchedulerBar>()._objectNumber = _objectNumber; //오브젝트넘버를 small bar에 저장 _smallBar.GetComponent <SmallSchedulerBar>()._originNumber = _originNumber; //오리진 정보또한 저장 _smallBar.GetComponent <SmallSchedulerBar>()._humanNumber = _humanNumber; _smallBar.GetComponent <SmallSchedulerBar>()._object = _tmpItem; //빅바 생성 및 설정 GameObject _bigBar = Instantiate(Resources.Load("Prefab/BigScheduler_Sample")) as GameObject; if (_originNumber == 2001) //클릭했을때의 오브젝트의 오리진 넘버로 구별 { _bigBar.name = "Man" + (_objectNumber); //빅바의 이름 설정 _bigBar.transform.GetChild(0).transform.GetChild(0).GetComponent <Text>().text = "" + _objectName + _objectNumber;; //빅바의 텍스트설정 } else if (_originNumber == 2000) { _bigBar.name = "Daughter" + (_objectNumber); //빅바의 이름 설정 _bigBar.transform.GetChild(0).transform.GetChild(0).GetComponent <Text>().text = "" + _objectName + _objectNumber;; //빅바의 텍스트설정 } else if (_originNumber == 2002) { _bigBar.name = "Woman" + (_objectNumber); //빅바의 이름 설정 _bigBar.transform.GetChild(0).transform.GetChild(0).GetComponent <Text>().text = "" + _objectName + _objectNumber;; //빅바의 텍스트설정 } else { _bigBar.name = "Woongin" + (_objectNumber); //빅바의 이름 설정 _bigBar.transform.GetChild(0).transform.GetChild(0).GetComponent <Text>().text = "" + _objectName + _objectNumber;; //빅바의 텍스트설정 } //content 설정 GameObject _bigContent; _bigContent = GameObject.Find("Canvas").transform.GetChild(2).transform.GetChild(4).transform.GetChild(1).transform.GetChild(0).transform.GetChild(0).transform.GetChild(0).gameObject; _bigBar.transform.SetParent(_bigContent.transform); //big Bar의 부모설정 _bigBar.transform.localScale = new Vector3(1, 1, 1); //크기 지정 //big Bar의 정보 _bigBar.GetComponent <BigSchedulerBar>()._objectNumber = _objectNumber; //오브젝트넘버를 small bar에 저장 _bigBar.GetComponent <BigSchedulerBar>()._originNumber = _originNumber; //오리진 정보또한 저장 _bigBar.GetComponent <BigSchedulerBar>()._humanNumber = _humanNumber; //휴먼넘버를 저장 //생성된 빅바를 스몰바에 저장 _smallBar.GetComponent <SmallSchedulerBar>()._bigScheduler = _bigBar; //big Bar는 우선 안보이게 처리 _bigBar.SetActive(false); _itemListControl._dataBaseBigBar.Add(_bigBar); _itemListControl._dataBaseSmallbar.Add(_smallBar); }
/* 놓은 장소에 물체 생성하는 과정*/ private void ReleaseIfClicked() { if (Input.GetMouseButtonDown(0)) { /* 마우스 작업상태 -> false 로 전환해준다! */ UIController._isMouseUsed = false; /* 벽 밖에 포인터를 갖다대면, 그 위치로 조정 못하도록 */ /* 내부에서만 */ if (_inDoor.activeSelf == true) { _clickedItemSize = _placableGameObject.transform.GetChild(0).GetComponent <Collider>().bounds.size; if (point.x + _clickedItemSize.x / 2 > _vec3.x) { _placableGameObject.transform.position = new Vector3(_vec3.x - _clickedItemSize.x / 2, _placableGameObject.transform.position.y, _placableGameObject.transform.position.z); } if (point.x - _clickedItemSize.x / 2 < -_vec3.x) { _placableGameObject.transform.position = new Vector3(-_vec3.x + _clickedItemSize.x / 2, _placableGameObject.transform.position.y, _placableGameObject.transform.position.z); } if (point.z + _clickedItemSize.z / 2 > _vec3.z) { _placableGameObject.transform.position = new Vector3(_placableGameObject.transform.position.x, _placableGameObject.transform.position.y, _vec3.z - _clickedItemSize.z / 2); } } /* 본체의 위치 - 중심점을 만들기 위하여 사용한 객체가 아니라 실제 객체*/ _placableGameObject = _placableGameObject.transform.GetChild(0).gameObject; /* 설치한 오브젝트의 layer를 Default로 변경, 이걸 해야 클릭을 하든 뭘 하든 할 수가 있음 */ _placableGameObject.layer = LayerMask.NameToLayer("Default"); /* 재조정하는 물체인지 아닌지 판별 */ /* 새로 위치를 잡는 아이템인 경우 */ if (!_reLocateSwi) { /*생성된 오브젝트에 ItemObject라는 스크립트 추가*/ _placableGameObject.AddComponent <ItemObject>(); /* 빠른 연결을 위한 캐싱 작업 */ ItemObject _tmp = _placableGameObject.GetComponent <ItemObject>(); /* 만들어진 객체가 사람 일때 -> HumanItem.cs 추가 생성 */ if (_placableItem._originNumber >= 2000 && _placableItem._originNumber < 3000) { /* _tmpItem을 새로 선언해 주고 연결해준다. */ HumanItem _tmpHuman = new HumanItem("Idle", _itemListControl._humanDBIndex); /* 추가한 ItemObject에 현재 Item의 정보를 담음 */ _tmp._thisHuman = _tmpHuman; /* 생성한 사람 객체를 ItemListControl.cs에 있는 HumanList에 저장. ItemListControl.cs 의 _dataBaseHumanItem 변수와 관련 */ _itemListControl.AddHumanDB(_tmpHuman); } /* _tmpItem을 새로 선언해 주고 연결해준다. */ /*사람객체를 생성할때는 오브젝트 넘버를 사람넘버에서 따와서 넣어준다.*/ Item _tmpItem; if (_placableItem._originNumber >= 2000 && _placableItem._originNumber < 2005) { _tmpItem = new Item(_placableItem.itemName, _itemListControl._humanDBIndex, _placableItem._originNumber, _placableGameObject); } else { _tmpItem = new Item(_placableItem.itemName, _itemListControl._itemDBIndex, _placableItem._originNumber, _placableGameObject); } /* 추가한 ItemObject에 현재 Item의 정보를 담음 */ _tmp._thisItem = _tmpItem; if (_placableItem._originNumber < 2000 || _placableItem._originNumber > 2005) //사람이 아닐때 { /* 생성한 객체를 ItemListControl.cs에 있는 List에 저장. ItemListControl.cs 의 _dataBaseItem 변수와 관련 */ _itemListControl.AddDB(_tmpItem); } else { _itemListControl.AddHuman(_tmpItem); /* * History * date : 2020-02-10 * author : skyde47 * desc : HumanItem 갱신 */ HumanItem _tmpHuman = _tmp._thisHuman; Transform _quick = _tmpItem.item3d.transform.Find("shirt"); //shirt의 자식 객체를 탐색하며 활성화되어있는 객체 저장 for (int i = 0; i < _quick.childCount; i++) { if (_quick.GetChild(i).gameObject.activeSelf) { _tmpHuman._shirt = _quick.GetChild(i).gameObject; _tmpHuman._shirtName = _tmpHuman._shirt.name; } } //pant의 자식 객체를 탐색하며 활성화되어있는 객체 저장 _quick = _tmpItem.item3d.transform.Find("pant"); for (int i = 0; i < _quick.childCount; i++) { if (_quick.GetChild(i).gameObject.activeSelf) { _tmpHuman._pant = _quick.GetChild(i).gameObject; _tmpHuman._pantName = _tmpHuman._pant.name; } } //shoes의 자식 객체를 탐색하며 활성화되어있는 객체 저장 if (_tmpItem.item3d.transform.Find("shoes").GetChild(0).gameObject.activeSelf) //현재 발 상태가 normal { _quick = _tmpItem.item3d.transform.Find("shoes"); for (int i = 0; i < _quick.GetChild(0).childCount; i++) { //normal의 자식객체를 탐색하며 활성화된 객체의 경우 저장 if (_quick.GetChild(0).GetChild(i).gameObject.activeSelf) { _tmpHuman._shoes = _quick.GetChild(0).GetChild(i).gameObject; _tmpHuman._shoesName = _tmpHuman._shoes.name; } } } else //abnormal { _quick = _tmpItem.item3d.transform.Find("shoes"); for (int i = 0; i < _quick.GetChild(1).childCount; i++) { //normal의 자식객체를 탐색하며 활성화된 객체의 경우 저장 if (_quick.GetChild(1).GetChild(i).gameObject.activeSelf) { _tmpHuman._shoes = _quick.GetChild(1).GetChild(i).gameObject; _tmpHuman._shoesName = _tmpHuman._shoes.name; } } } } /* Item의 생성번호를 부여 */ if (_placableItem._originNumber >= 2000 && _placableItem._originNumber < 2005) { _tmp.GetComponent <ItemObject>()._thisItem._objectNumber = _itemListControl._humanDBIndex; HistoryController.pushObjectCreateHist(_placableGameObject, _placableItem._originNumber, _itemListControl._humanDBIndex); } else { _tmp.GetComponent <ItemObject>()._thisItem._objectNumber = _itemListControl._itemDBIndex; HistoryController.pushObjectCreateHist(_placableGameObject, _placableItem._originNumber, _itemListControl._itemDBIndex); } /* 윤곽선 안보이게 처리! */ //_placableGameObject.GetComponent<Outline>().enabled = false; if (_placableItem._originNumber >= 2000 && _placableItem._originNumber < 2005) { /* 스몰 스케줄러에 각 Item 값을 채워줌. */ Item temp = _tmp.GetComponent <ItemObject>()._thisItem; Transform smallBar = _smallScheduler.transform.Find(temp.itemName + temp._objectNumber); smallBar.GetComponent <SmallSchedulerBar>()._object = _tmpItem; } } /* 위치를 재조정하는 아이템인 경우 */ else { _reLocateSwi = false; /* 윤곽선 보이게 처리! -> 위치 재조정 해도 클릭된 아이템은 여전하므로 */ //_placableGameObject.GetComponent<Outline>().enabled = true; /* Sprite 이미지가 해당 위치로 이동하도록 설정 */ _SpriteObject.transform.position = new Vector3(Input.mousePosition.x, Input.mousePosition.y + 30.0f, Input.mousePosition.z); _SpriteObject.SetActive(true); ///* 위치 설정 하는 객체가 사람일 경우 줌 인 필요! */ //if (_placableItem._originNumber >= 2000 && _placableItem._originNumber < 3000) //{ // Static.STATIC.cameraMoveAroun.CameraZoomIn(_placableGameObject.transform.position); //} } _placableGameObject.GetComponent <ItemObject>()._humanInitPosition = point; _placableGameObject.GetComponent <ItemObject>()._humanInitRotation = _placableGameObject.transform.rotation.eulerAngles; /* 위치 조정을 마쳤으면 이제 null 선언으로 끊어준다. */ _placableGameObject = null; _placableItem = null; } /* * History * date : 2018-11-26 * author : Lugup * 내 용 : Item Relocate... 하는 스크립트였으나 * 실행시 : 클릭한 객체의 위치를 기존의 위치에서 새로운 위치로 조정함 * 취소시 : 클릭했던 객체의 위치를 새로운 위치에서 기존의 위치로 조정 * */ }