mirror of
https://github.com/DCFApixels/Unity-DebugX.git
synced 2025-09-17 17:34:35 +08:00
83 lines
2.7 KiB
C#
83 lines
2.7 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace DCFApixels
|
|
{
|
|
public static unsafe partial class DebugX
|
|
{
|
|
#region Globals
|
|
private const string GlobalTimeScalePrefName = "DCFApixels.DebugX.TimeScale";
|
|
private static float _timeScaleCache;
|
|
public static float GlobalTimeScale
|
|
{
|
|
get { return _timeScaleCache; }
|
|
set
|
|
{
|
|
value = Mathf.Max(0f, value);
|
|
if (_timeScaleCache == value) { return; }
|
|
_timeScaleCache = value;
|
|
#if UNITY_EDITOR
|
|
EditorPrefs.SetFloat(GlobalTimeScalePrefName, value);
|
|
#endif
|
|
}
|
|
}
|
|
private const string GlobalDotSizePrefName = "DCFApixels.DebugX.DotSize";
|
|
private static float _dotSizeCache;
|
|
public static float GlobalDotSize
|
|
{
|
|
get { return _dotSizeCache; }
|
|
set
|
|
{
|
|
if (_dotSizeCache == value) { return; }
|
|
_dotSizeCache = value;
|
|
Shader.SetGlobalFloat(GlobalDotSizePropertyID, _dotSizeCache);
|
|
#if UNITY_EDITOR
|
|
EditorPrefs.SetFloat(GlobalDotSizePrefName, _dotSizeCache);
|
|
#endif
|
|
}
|
|
}
|
|
private const string GlobalColorPrefName = "DCFApixels.DebugX.Color";
|
|
private static Color _globalColorCache;
|
|
public static Color GlobalColor
|
|
{
|
|
get { return _globalColorCache; }
|
|
set
|
|
{
|
|
if (_globalColorCache == value) { return; }
|
|
_globalColorCache = value;
|
|
Shader.SetGlobalVector(nameID: GlobalColorPropertyID, _globalColorCache);
|
|
|
|
Color32 c32 = (Color32)value;
|
|
var record = *(int*)&c32;
|
|
#if UNITY_EDITOR
|
|
EditorPrefs.SetInt(GlobalColorPrefName, record);
|
|
#endif
|
|
}
|
|
}
|
|
public static void ResetGlobals()
|
|
{
|
|
#if UNITY_EDITOR
|
|
EditorPrefs.DeleteKey(GlobalTimeScalePrefName);
|
|
EditorPrefs.DeleteKey(GlobalDotSizePrefName);
|
|
EditorPrefs.DeleteKey(GlobalColorPrefName);
|
|
_dotSizeCache = default;
|
|
_timeScaleCache = default;
|
|
_globalColorCache = default;
|
|
InitGlobals();
|
|
#endif
|
|
}
|
|
public static void InitGlobals()
|
|
{
|
|
GlobalTimeScale = 1;
|
|
GlobalDotSize = 1;
|
|
GlobalColor = Color.white;
|
|
#if UNITY_EDITOR
|
|
GlobalTimeScale = EditorPrefs.GetFloat(GlobalTimeScalePrefName, 1f);
|
|
GlobalDotSize = EditorPrefs.GetFloat(GlobalDotSizePrefName, 1f);
|
|
var colorCode = EditorPrefs.GetInt(GlobalColorPrefName, -1);
|
|
GlobalColor = (Color)(*(Color32*)&colorCode);
|
|
#endif
|
|
}
|
|
#endregion
|
|
}
|
|
} |