示例#1
0
        static void BreadCrumbItemClicked(BreadcrumbBar.Item item)
        {
            var stageClicked = (StageNavigationItem)item.userdata;

            if (!stageClicked.valid)
            {
                return;
            }

            if (StageNavigationManager.instance.currentItem == stageClicked)
            {
                EditorGUIUtility.PingObject(AssetDatabase.LoadMainAssetAtPath(stageClicked.prefabAssetPath));
            }
            else
            {
                StageNavigationManager.instance.SwitchToStage(stageClicked, false, true, StageNavigationManager.Analytics.ChangeType.NavigateViaBreadcrumb);
            }
        }
        void BreadCrumbItemClicked(BreadcrumbBar.Item item)
        {
            var stageClicked = (Stage)item.userdata;

            if (!stageClicked.isValid)
            {
                return;
            }

            if (StageNavigationManager.instance.currentStage == stageClicked)
            {
                EditorGUIUtility.PingObject(AssetDatabase.LoadMainAssetAtPath(stageClicked.assetPath));
            }
            else
            {
                // The BreadCrumbItemClicked event is called during the SceneView's OnGUI and if we switch stage directly we might delete the
                // target of the SceneView's activeEditors which the rest of the SceneView's OnGUI is not expecting.
                // E.g it will cause null ref exceptions in OnSceneGUI(). Instead we delay switching until the next Update.
                m_StageClickedFromBreadcrumb = stageClicked;
                EditorApplication.update    += SwitchStageOnNextUpdate;
            }
        }
示例#3
0
 internal override BreadcrumbBar.Item CreateBreadcrumbItem()
 {
     BreadcrumbBar.Item item = base.CreateBreadcrumbItem();
     item.separatorstyle = BreadcrumbBar.SeparatorStyle.None;
     return(item);
 }