public override void Drop(object[] dragObjects, PointerEventData pointerEventData) { base.Drop(dragObjects, pointerEventData); ProjectItem dropTarget = (ProjectItem)m_listBox.DropTarget; IRuntimeEditor editor = IOC.Resolve <IRuntimeEditor>(); if (CanCreatePrefab(dropTarget, dragObjects)) { ExposeToEditor dragObject = (ExposeToEditor)dragObjects[0]; if (dropTarget.IsFolder) { editor.CreatePrefab(dropTarget, dragObject, null, assetItem => { }); } } else { if (dragObjects[0] is ExposeToEditor) { ExposeToEditor dragObject = (ExposeToEditor)dragObjects[0]; editor.CreatePrefab(m_folders[0], dragObject, null, assetItem => { }); } } m_listBox.ExternalItemDrop(); }
protected virtual void OnDrop(PointerEventData pointerEventData) { object[] dragObjects = Editor.DragDrop.DragObjects; ProjectItem dropTarget = (ProjectItem)m_listBox.DropTarget; IRuntimeEditor editor = IOC.Resolve <IRuntimeEditor>(); if (dropTarget != null && dropTarget.IsFolder && CanCreatePrefab(dropTarget, dragObjects)) { ExposeToEditor dragObject = (ExposeToEditor)dragObjects[0]; if (dropTarget.IsFolder) { editor.CreatePrefab(dropTarget, dragObject, null, assetItem => { }); } } else { if (dragObjects[0] is ExposeToEditor) { ExposeToEditor dragObject = (ExposeToEditor)dragObjects[0]; if (dragObject.CanCreatePrefab) { if (m_folders != null) { editor.CreatePrefab(m_folders[0], dragObject, null, assetItem => { }); } } } } m_listBox.ExternalItemDrop(); }
public override IEnumerator Import(string filePath, string targetPath) { Mesh mesh = ImportFile(filePath); mesh.name = Path.GetFileName(filePath) + "Mesh"; GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube); go.GetComponent <MeshFilter>().sharedMesh = mesh; go.name = Path.GetFileName(filePath); go.SetActive(false); IProject project = IOC.Resolve <IProject>(); IRuntimeEditor editor = IOC.Resolve <IRuntimeEditor>(); ProjectItem folder = project.GetFolder(Path.GetDirectoryName(targetPath)); yield return(editor.CreatePrefab(folder, go.AddComponent <ExposeToEditor>(), true, assetItems => { })); Object.Destroy(mesh); Object.Destroy(go); }
public override void Drop(object[] dragObjects, PointerEventData pointerEventData) { base.Drop(dragObjects, pointerEventData); ProjectItem dropTarget = (ProjectItem)m_treeView.DropTarget; if (CanDrop(dropTarget, dragObjects)) { Editor.IsBusy = true; m_project.Move(dragObjects.OfType<ProjectItem>().ToArray(), dropTarget, (error, arg1, arg2) => Editor.IsBusy = false); } else if(dropTarget != null && dropTarget.IsFolder && CanCreatePrefab(dropTarget, dragObjects)) { IRuntimeEditor editor = IOC.Resolve<IRuntimeEditor>(); ExposeToEditor dragObject = (ExposeToEditor)dragObjects[0]; if (dropTarget.IsFolder) { editor.CreatePrefab(dropTarget, dragObject, null, assetItem => { }); } } m_treeView.ExternalItemDrop(); }