private static void St2() { var hasLibCSharpFileMakeCompileSlow = false; foreach (var p in RoFile.Ls(EditorScript.Ro.EditorEnv.assetsPath)) { var isLibDir = RoFile.IsDir(p) && !RoFile.Basename(p) .IsMatch(@"^(Script|PostProcessing|Scripts|Editor|EditorScript|Draft|Test|Plugins|Standard Assets)$"); if (isLibDir) { foreach (var p2 in RoFile.FF(p)) { if (p2.IsMatch("\\.cs$")) { hasLibCSharpFileMakeCompileSlow = true; var rootDir = RoFile.Rel(p2, EditorEnv.assetsPath).Match("[^/]+").ToString(); Shell.NotifyWarn( $"In *Assets/{rootDir}*, it has lib c# file in Assets not *Assets/Standard Assets* to make compile slow, run *mad compile time optimizer* or maunally moving all lib c# files to *Assets/Standard Assets* to improve it"); break; } } } if (hasLibCSharpFileMakeCompileSlow) { break; } } }
static Replay() { if (EditorUtil.GetCurrentScene().path == RoFile.Rel(EditorEnv.roTestScenePath, EditorEnv.pj)) { // in some case, replay still doesn't work since it's interrupted by unity editor auto refresh, since i often use RoTestScene.unity, so after refresh, start play StartPlay(); } }
public static void OpenDir(string absPath) { var assetPath = $"Assets/{RoFile.Rel(absPath, Application.dataPath)}"; var asset = AssetDatabase.LoadMainAssetAtPath(assetPath); var pt = Type.GetType("UnityEditor.ProjectBrowser,UnityEditor"); var ins = pt.GetField("s_LastInteractEditorScript.RojectBrowser", BindingFlags.Static | BindingFlags.Public) .GetValue(null); var showDirMeth = pt.GetMethod("ShowFolderContents", BindingFlags.NonPublic | BindingFlags.Instance); showDirMeth.Invoke(ins, new object[] { asset.GetInstanceID(), true }); }
public static void OpenFile(string absPath) { if (!Regex.IsMatch(absPath, @"Assets")) { throw new Exception($"{Kernel.GetCurMethName()} only support assets path"); } var assetPath = $"Assets/{RoFile.Rel(absPath, Application.dataPath)}"; var asset = AssetDatabase.LoadMainAssetAtPath(assetPath); OpenObject(asset); }
public static void OpenAssetInIDE(string assetPath) { var assetPath2 = RoFile.Rel(assetPath, EditorEnv.pj); AssetDatabase.OpenAsset(AssetDatabase.LoadAssetAtPath <TextAsset>(assetPath2)); }