public void PasteDisplayObjects() { if (GlobalData.CurrentCopyDisplayObjects.Count == 0) { return; } List <Element> sourceList = GlobalData.CurrentCopyDisplayObjects; Vector2 leftTop = DisplayObjectUtil.GetCopyDisplayObjectsLeftTop(sourceList); Vector2 mousePos = Vector2.zero; if (Utils.IsPointOverGameObject(containerScrollView)) { mousePos = Utils.GetRealPosition(Input.mousePosition); } Vector2 delta = mousePos - leftTop; int count = sourceList.Count; string moduleName = GlobalData.CurrentModule; List <Element> copiedElements = new List <Element>(); for (int idx = 0; idx < count; ++idx) { Element sourceElement = sourceList[idx]; string imageUrl = DisplayObjectUtil.GetImageUrl(moduleName, sourceElement.Name); string elementName = DisplayObjectUtil.GetCanUseElementName(sourceElement.Name, imageUrl); Vector2 pos = new Vector2(sourceElement.X + delta.x, sourceElement.Y + delta.y); Vector2 size = new Vector2(sourceElement.Width, sourceElement.Height); Element element = new Element { Name = elementName, X = pos.x, Y = pos.y, Width = size.x, Height = size.y, Visible = true }; DisplayObjectUtil.AddDisplayObjectBehavior(moduleName, element, imageUrl); copiedElements.Add(element); } HistoryManager.Do(BehaviorFactory.GetCopyDisplayObjectsBehavior(moduleName, copiedElements), true); }