В Unity оттенок игрового режима — это визуальный индикатор, который помогает различать вид сцены и вид игры во время игрового тестирования. По умолчанию оттенок игрового режима обеспечивает синее наложение в виде сцены, что означает, что игра запущена. Однако вы можете настроить этот оттенок так, чтобы он лучше соответствовал вашим потребностям. В этой статье блога мы рассмотрим несколько методов изменения оттенка режима воспроизведения в Unity, а также приведем примеры кода для каждого метода.
Метод 1: использование API оттенка PlayMode
Unity предоставляет API для программного изменения оттенка режима воспроизведения. Вот пример того, как можно изменить оттенок режима воспроизведения с помощью этого API:
using UnityEditor;
public class PlayModeTintExample
{
[InitializeOnLoadMethod]
private static void ChangePlayModeTint()
{
EditorApplication.playmodeStateChanged += () =>
{
if (EditorApplication.isPlayingOrWillChangePlaymode)
EditorApplication.playModeTintColor = Color.red; // Change the tint color here
else
EditorApplication.playModeTintColor = Color.blue; // Reset the tint color when not in playmode
};
}
}
Метод 2: изменение файла настроек редактора
Unity хранит различные настройки редактора в файле с именем «EditorSettings.asset». Вы можете вручную изменить этот файл, чтобы изменить оттенок режима воспроизведения. Выполните следующие действия:
- Закрыть Unity.
- Найдите файл «EditorSettings.asset» в папке «ProjectSettings» вашего проекта.
- Откройте файл в текстовом редакторе.
- Найдите строку, содержащую «Оттенок режима воспроизведения». Это должно выглядеть так: “m_PlayModeTintColor: (0.000000, 0.000000, 0.000000, 0.000000)”
- Измените значения RGB, чтобы настроить цвет оттенка. Например, чтобы установить красный цвет, используйте: «m_PlayModeTintColor: (1.000000, 0.000000, 0.000000, 1.000000)»
- Сохраните файл и снова откройте Unity.
Метод 3: использование пользовательского сценария редактора.
Вы можете создать собственный сценарий редактора, чтобы изменить оттенок режима воспроизведения. Вот пример:
using UnityEditor;
using UnityEngine;
[InitializeOnLoad]
public class CustomPlayModeTint : Editor
{
static CustomPlayModeTint()
{
SceneView.onSceneGUIDelegate += OnSceneGUI;
}
private static void OnSceneGUI(SceneView sceneView)
{
Handles.BeginGUI();
GUI.backgroundColor = Color.green; // Change the tint color here
GUI.Box(new Rect(10, 10, 150, 30), "Playmode Tint");
GUI.backgroundColor = Color.white;
Handles.EndGUI();
}
}