Skip to content

Commit ebda26b

Browse files
authored
Merge pull request #2 from RimuruDev/path-1.6.4
v.1.6.4
2 parents 455f934 + 109e31b commit ebda26b

File tree

3 files changed

+65
-46
lines changed

3 files changed

+65
-46
lines changed

Editor/SceneSwitcher/SceneSwitcher.cs

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
// **************************************************************** //
22
//
33
// Copyright (c) RimuruDev. All rights reserved.
4-
// Contact me:
4+
// Contact me:
55
// - Gmail: rimuru.dev@gmail.com
66
// - LinkedIn: https://www.linkedin.com/in/rimuru/
77
// - Gists: https://gist.github.com/RimuruDev/af759ce6d9768a38f6838d8b7cc94fc8
88
// - GitHub: https://github.com/RimuruDev
9-
// - GitHub Organizations: https://github.com/Rimuru-Dev
109
//
1110
// **************************************************************** //
1211

@@ -20,44 +19,57 @@ namespace AbyssMoth.External.RimuruDevUtils.Editor.SceneSwitcher
2019
{
2120
public sealed class SceneSwitcher : EditorWindow
2221
{
23-
private const string СtrlF2 = "%#F2";
22+
private const string CtrlF2 = "%#F2";
2423
private const string FindAssets = "t:Scene";
2524
private const string logFormat = "<color=yellow>{0}</color>";
2625

2726
private bool showAllScenes;
2827
private bool autoSaveEnabled = true;
2928
private bool settingsFoldout = true;
3029
private bool showDebugLog;
30+
private bool compactButtons;
3131
private Vector2 scrollPosition;
3232

33-
[MenuItem("RimuruDev Tools/Scene Switcher " + СtrlF2)]
33+
[MenuItem("RimuruDev Tools/Scene Switcher " + CtrlF2)]
3434
private static void ShowWindow()
3535
{
36-
GetWindow(typeof(SceneSwitcher));
36+
GetWindow<SceneSwitcher>();
3737
}
3838

3939
private void OnGUI()
4040
{
4141
GUILayout.Label("Scene Switcher", EditorStyles.boldLabel);
4242

4343
settingsFoldout = EditorGUILayout.Foldout(settingsFoldout, "Settings");
44+
4445
if (settingsFoldout)
4546
{
4647
EditorGUI.indentLevel++;
47-
showAllScenes = EditorGUILayout.Toggle("Show Absolutely All Scenes", showAllScenes);
48-
autoSaveEnabled = EditorGUILayout.Toggle("Enable Auto Save", autoSaveEnabled);
49-
showDebugLog = EditorGUILayout.Toggle("Show Debug Log", showDebugLog);
48+
{
49+
showAllScenes = EditorGUILayout.Toggle("Show Absolutely All Scenes", showAllScenes);
50+
autoSaveEnabled = EditorGUILayout.Toggle("Enable Auto Save", autoSaveEnabled);
51+
showDebugLog = EditorGUILayout.Toggle("Show Debug Log", showDebugLog);
52+
compactButtons = EditorGUILayout.Toggle("Compact Buttons", compactButtons);
53+
}
5054
EditorGUI.indentLevel--;
5155
}
5256

53-
scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Height(350));
54-
var scenePaths = showAllScenes ? GetAllScenePaths() : GetScenePathsByBuildSettings();
55-
57+
scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true, GUILayout.Width(350), GUILayout.Height(350));
58+
59+
var scenePaths = showAllScenes
60+
? GetAllScenePaths()
61+
: GetScenePathsByBuildSettings();
62+
63+
var buttonWidth = compactButtons
64+
? 200
65+
: 300;
66+
5667
foreach (var scenePath in scenePaths)
5768
{
5869
GUILayout.BeginHorizontal();
5970
GUILayout.FlexibleSpace();
60-
if (GUILayout.Button(Path.GetFileNameWithoutExtension(scenePath), GUILayout.ExpandWidth(false)))
71+
72+
if (GUILayout.Button(Path.GetFileNameWithoutExtension(scenePath), GUILayout.Width(buttonWidth)))
6173
{
6274
if (autoSaveEnabled && EditorSceneManager.SaveOpenScenes())
6375
{
@@ -67,7 +79,7 @@ private void OnGUI()
6779

6880
EditorSceneManager.OpenScene(scenePath);
6981
}
70-
82+
7183
GUILayout.FlexibleSpace();
7284
GUILayout.EndHorizontal();
7385
}
@@ -77,28 +89,25 @@ private void OnGUI()
7789

7890
private static string[] GetScenePathsByBuildSettings()
7991
{
80-
var paths = new string[EditorBuildSettings.scenes.Length];
92+
var scenes = EditorBuildSettings.scenes;
93+
var paths = new string[scenes.Length];
8194

82-
for (var i = 0; i < EditorBuildSettings.scenes.Length; i++)
83-
paths[i] = EditorBuildSettings.scenes[i].path;
95+
for (var i = 0; i < scenes.Length; i++)
96+
paths[i] = scenes[i].path;
8497

8598
return paths;
8699
}
87100

88101
private static string[] GetAllScenePaths()
89102
{
90103
var guids = AssetDatabase.FindAssets(FindAssets);
91-
92104
var scenePaths = new string[guids.Length];
93105

94-
for (var i = 0; i < scenePaths.Length; i++)
95-
{
96-
var path = AssetDatabase.GUIDToAssetPath(guids[i]);
97-
scenePaths[i] = path;
98-
}
106+
for (var i = 0; i < guids.Length; i++)
107+
scenePaths[i] = AssetDatabase.GUIDToAssetPath(guids[i]);
99108

100109
return scenePaths;
101110
}
102111
}
103112
}
104-
#endif
113+
#endif

README.md

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<p align="center"><h1>⭐SceneSwitcher⭐</h1></p>
2-
<p align="center">
2+
<p align="center">
33
<a>
44
<img alt="Made With Unity" src="https://img.shields.io/badge/made%20with-Unity-57b9d3.svg?logo=Unity">
55
</a>
66
<a>
7-
<img alt="License" src="https://img.shields.io/github/license/RimuruDev/SceneSwitcher?logo=github">
7+
<img alt="License" src="https://img.shields.io/github/license/RimuruDev/SceneSwitcher?logo=github">
88
</a>
99
<a>
1010
<img alt="Last Commit" src="https://img.shields.io/github/last-commit/RimuruDev/SceneSwitcher?logo=Mapbox&color=orange">
@@ -29,40 +29,50 @@
2929
</a>
3030
</p>
3131

32-
3332
## Описание
34-
SceneSwitcher - это удобный инструмент для Unity Editor, который позволяет быстро и легко переключаться между сценами в проекте. Это решение особенно полезно в крупных проектах Unity, где управление многочисленными сценами может быть затруднено.
3533

36-
## Основные Функции
37-
- **Быстрый переход между сценами**: Переключайтесь между сценами в вашем проекте с помощью одного клика.
38-
- **Автосохранение**: Настройте автоматическое сохранение текущей сцены перед переключением на другую.
39-
- **Настройка отображения**: Выбирайте, показывать ли все сцены или только те, что включены в настройки сборки.
40-
- **Отладочный лог**: Включите или отключите отладочные сообщения.
34+
**SceneSwitcher** – это удобный инструмент для Unity Editor, который позволяет быстро и легко переключаться между
35+
сценами в проекте. Это решение особенно полезно в крупных проектах Unity, где управление множеством сцен может быть
36+
затруднено.
37+
38+
## Основные функции
39+
40+
- **Быстрый переход между сценами**: Переключайтесь между сценами одним кликом в окне инструмента.
41+
- **Автосохранение**: Опционально сохраняйте текущую сцену перед переключением (включается/выключается).
42+
- **Отображение сцен**: Выбирайте, показывать ли **все** сцены в проекте или только те, что указаны в настройках
43+
сборки (Build Settings).
44+
- **Режим Compact Buttons**: Включайте или отключайте компактный режим, чтобы управлять шириной кнопок и их
45+
расположением (узкие кнопки по центру или более широкие).
46+
- **Отладочный лог**: По необходимости выводите сообщения в `Console` при сохранении или переключении сцен.
4147

4248
## Установка
43-
Чтобы добавить SceneSwitcher в ваш проект Unity, выполните следующие шаги:
4449

4550
1. Откройте Unity и перейдите в ваш проект.
46-
2. Откройте `Window` > `Package Manager`.
47-
3. В Package Manager выберите `+` > `Add package from git URL...`.
48-
4. Введите следующий URL: `` https://github.com/RimuruDev/SceneSwitcher.git``
49-
5. Нажмите `Enter` и дождитесь завершения установки.
51+
2. Откройте **Window****Package Manager**.
52+
3. В **Package Manager** нажмите на кнопку `+`, затем выберите **Add package from git URL...**.
53+
4. Вставьте следующий URL:`https://github.com/RimuruDev/SceneSwitcher.git`
54+
5. Нажмите **Enter** и дождитесь завершения установки.
5055

5156
## Использование
52-
После установки SceneSwitcher, его можно найти в меню Unity под пунктом `RimuruDev Tools`.
5357

54-
1. Перейдите в `RimuruDev Tools` > `Scene Switcher`.
55-
2. В открывшемся окне выберите сцену, на которую хотите переключиться.
56-
3. Используйте настройки для включения/выключения автосохранения и отображения отладочных сообщений по необходимости.
58+
После установки **SceneSwitcher** инструмент появляется в меню Unity:
59+
**RimuruDev Tools****Scene Switcher**.
5760

58-
![image](https://github.com/RimuruDev/SceneSwitcher/assets/85500556/0d0f8801-6ed1-44c2-8c44-5908af19cda1)
61+
1. Откройте окно **Scene Switcher**.
62+
2. Отметьте галочкой, хотите ли вы показывать **все сцены** или только **Build Settings**.
63+
3. Настройте **Автосохранение** (Auto Save) и **Debug Log** (отладочные сообщения) по желанию.
64+
4. При необходимости включите **Compact Buttons** – кнопки станут короче и будут выровнены по центру.
65+
5. Нажмите на любую сцену для мгновенного переключения.
5966

67+
![image](https://github.com/RimuruDev/SceneSwitcher/assets/85500556/0d0f8801-6ed1-44c2-8c44-5908af19cda1)
6068

6169
## Контакты
62-
Если у вас есть вопросы или предложения, не стесняйтесь обращаться:
6370

64-
- **Email**: rimuru.dev@gmail.com
71+
Если у вас есть вопросы или предложения, вы можете связаться со мной:
72+
73+
- **Email**: [rimuru.dev@gmail.com](mailto:rimuru.dev@gmail.com)
6574
- **GitHub**: [RimuruDev](https://github.com/RimuruDev)
6675

6776
## Лицензия
68-
Проект распространяется под лицензией MIT. См. файл `LICENSE` для дополнительной информации.
77+
78+
Проект распространяется под лицензией **MIT**. Подробности см. в файле [`LICENSE`](LICENSE).

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "com.rimurudev.sceneswitcher",
3-
"version": "1.4.4",
3+
"version": "1.6.4",
44
"displayName": "RimuruDev",
55
"description": "Easily and conveniently navigate scenes in Unity without having to manually search for the scene you need.",
66
"unity": "2019.1",

0 commit comments

Comments
 (0)