Пример #1
0
        private void OnProjectResourcesDrop(object sender, ProjectResourcesEventArgs e)
        {
            if (e.ItemObjectPair.ProjectItem.IsExposedFromEditor)
            {
                return;
            }
            ProjectItem dragItem   = e.ItemObjectPair.ProjectItem;
            ProjectItem dropTarget = m_projectTree.BeginDropProjectItem();

            if (dragItem == dropTarget)
            {
                return;
            }

            if (dropTarget != null)
            {
                if (dropTarget.Children != null && dropTarget.Children.Any(c => c.NameExt == dragItem.NameExt))
                {
                    return;
                }

                m_projectManager.Move(new[] { dragItem }, dropTarget, () =>
                {
                    if (dragItem.IsFolder)
                    {
                        m_projectTree.DropProjectItem(dragItem, dropTarget);
                    }
                    if (m_projectTree.SelectedFolder.Children == null ||
                        !m_projectTree.SelectedFolder.Children.Contains(e.ItemObjectPair.ProjectItem))
                    {
                        m_projectResources.RemoveProjectItem(e.ItemObjectPair);
                    }
                });
            }
        }
Пример #2
0
 private void OnProjectResourcesBeginDrag(object sender, ProjectResourcesEventArgs e)
 {
     if (!e.ItemObjectPair.ProjectItem.IsExposedFromEditor)
     {
         m_projectTree.BeginDragProjectItem(e.ItemObjectPair.ProjectItem);
     }
 }
Пример #3
0
        private void OnProjectResourcesDeleted(object sender, ProjectResourcesEventArgs e)
        {
            if (e.ItemObjectPair != null)
            {
                ProjectItem[] projectItems = e.ItemObjectPairs.Select(p => p.ProjectItem).ToArray();
                projectItems = ProjectItem.GetRootItems(projectItems);

                ShowProgress = true;
                m_projectManager.Delete(projectItems, () =>
                {
                    m_projectTree.RemoveProjectItemsFromTree(projectItems);
                    ShowProgress = false;
                });
            }
        }
Пример #4
0
        private void OnResourcesDoubleClick(object sender, ProjectResourcesEventArgs e)
        {
            if (e.ItemObjectPair != null && e.ItemObjectPair.IsNone)
            {
                IsNoneSelected = true;
            }
            else
            {
                IsNoneSelected = false;
                if (e.ItemObjectPair != null)
                {
                    SelectedObject = e.ItemObjectPair.Object;
                }
                else
                {
                    SelectedObject = null;
                }
            }

            m_parentPopup.Close(true);
        }
Пример #5
0
        private void OnProjectResourcesDoubleClick(object sender, ProjectResourcesEventArgs e)
        {
            if (e.ItemObjectPair != null)
            {
                ProjectItem projectItem = e.ItemObjectPair.ProjectItem;
                if (projectItem.IsFolder)
                {
                    m_projectTree.SelectedFolder = projectItem;
                }
                else if (projectItem.IsScene)
                {
                    if (RuntimeEditorApplication.IsPlaying)
                    {
                        PopupWindow.Show("Unable to load scene", "Unable to load scene in play mode", "OK");
                        return;
                    }

                    RuntimeUndo.Purge();

                    ExposeToEditor[] editorObjects = ExposeToEditor.FindAll(ExposeToEditorObjectType.EditorMode, false).Select(go => go.GetComponent <ExposeToEditor>()).ToArray();
                    for (int i = 0; i < editorObjects.Length; ++i)
                    {
                        ExposeToEditor exposeToEditor = editorObjects[i];
                        if (exposeToEditor != null)
                        {
                            DestroyImmediate(exposeToEditor.gameObject);
                        }
                    }

                    ShowProgress = true;
                    m_projectManager.LoadScene(projectItem, () =>
                    {
                        ShowProgress = false;
                    });
                }
            }
        }