update
This commit is contained in:
@@ -903,10 +903,11 @@ namespace VFavorites
|
||||
|
||||
if (browser.GetFieldValue<int>("m_ViewMode") == 1)
|
||||
{
|
||||
TryOpenFolderInProjectBrowser(browser, folderInstanceId);
|
||||
|
||||
Selection.activeObject = folderAsset;
|
||||
EditorGUIUtility.PingObject(folderAsset);
|
||||
if (!TryOpenFolderInProjectBrowser(browser, folderInstanceId))
|
||||
{
|
||||
Selection.activeObject = folderAsset;
|
||||
EditorGUIUtility.PingObject(folderAsset);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -959,7 +960,7 @@ namespace VFavorites
|
||||
if (!isWrappedBrowserLocked) return;
|
||||
|
||||
var unlockedBrowser = allBrowsers.FirstOrDefault(r => !r.GetMemberValue<bool>("isLocked"));
|
||||
var browserToUse = isOneColumn ? unlockedBrowser : lockedBrowser;
|
||||
var browserToUse = isOneColumn ? (unlockedBrowser ?? wrappedBrowser) : wrappedBrowser;
|
||||
|
||||
if (!browserToUse) return;
|
||||
|
||||
@@ -977,29 +978,31 @@ namespace VFavorites
|
||||
|
||||
}
|
||||
|
||||
static void TryOpenFolderInProjectBrowser(EditorWindow browser, int folderInstanceId)
|
||||
static bool TryOpenFolderInProjectBrowser(EditorWindow browser, int folderInstanceId)
|
||||
{
|
||||
if (TryInvoke(browser, "ShowFolderContents", folderInstanceId, true)) return;
|
||||
if (TryInvoke(browser, "ShowFolderContents", folderInstanceId, true)) return true;
|
||||
|
||||
t_BrowserWindow.SetFieldValue("s_LastInteractedProjectBrowser", browser, exceptionIfNotFound: false);
|
||||
|
||||
if (TryInvoke(browser, "SetFolderSelection", new[] { folderInstanceId }, false))
|
||||
if (TryInvoke(t_BrowserWindow, "OpenSelectedFolders")) return;
|
||||
if (TryInvoke(t_BrowserWindow, "OpenSelectedFolders")) return true;
|
||||
|
||||
var listAreaState = browser.GetFieldValue("m_ListAreaState", exceptionIfNotFound: false);
|
||||
|
||||
if (TrySetSelectedInstanceId(listAreaState, folderInstanceId))
|
||||
if (TryInvoke(t_BrowserWindow, "OpenSelectedFolders")) return;
|
||||
if (TryInvoke(t_BrowserWindow, "OpenSelectedFolders")) return true;
|
||||
|
||||
var folderAsset = EditorUtility.InstanceIDToObject(folderInstanceId);
|
||||
|
||||
if (folderAsset && AssetDatabase.OpenAsset(folderAsset)) return;
|
||||
if (folderAsset && AssetDatabase.OpenAsset(folderAsset)) return true;
|
||||
|
||||
if (TryInvoke(browser, "FrameObjectPrivate", folderInstanceId, true, false)) return;
|
||||
if (TryInvoke(browser, "FrameObject", folderInstanceId, true)) return;
|
||||
if (TryInvoke(browser, "FrameObjectPrivate", folderInstanceId, true, false)) return true;
|
||||
if (TryInvoke(browser, "FrameObject", folderInstanceId, true)) return true;
|
||||
|
||||
if (folderAsset) EditorGUIUtility.PingObject(folderAsset);
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
static bool TryInvoke(object target, string methodName, params object[] parameters)
|
||||
|
||||
Reference in New Issue
Block a user