mirror of
https://github.com/DCFApixels/Unity-DebugX.git
synced 2025-09-18 10:04:38 +08:00
100 lines
3.3 KiB
C#
100 lines
3.3 KiB
C#
using UnityEngine;
|
|
#if UNITY_EDITOR
|
|
using UnityEditor;
|
|
#endif
|
|
|
|
namespace DCFApixels
|
|
{
|
|
public static unsafe partial class DebugX
|
|
{
|
|
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(GLOBAL_TIME_SCALE_PREF_NAME, value);
|
|
#endif
|
|
}
|
|
}
|
|
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(GLOBAL_DOT_SIZE_PREF_NAME, _dotSizeCache);
|
|
#endif
|
|
}
|
|
}
|
|
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(GLOBAL_COLOR_PREF_NAME, record);
|
|
#endif
|
|
}
|
|
}
|
|
private static float _globalGreaterPassAlphaCache;
|
|
public static float GlobalGreaterPassAlpha
|
|
{
|
|
get { return _globalGreaterPassAlphaCache; }
|
|
set
|
|
{
|
|
if (_globalGreaterPassAlphaCache == value) { return; }
|
|
_globalGreaterPassAlphaCache = value;
|
|
Shader.SetGlobalFloat(nameID: GlobalGreaterPassAlphaPropertyID, _globalGreaterPassAlphaCache);
|
|
|
|
#if UNITY_EDITOR
|
|
EditorPrefs.SetFloat(GLOBAL_GREATER_PASS_ALPHA_PREF_NAME, _globalGreaterPassAlphaCache);
|
|
#endif
|
|
}
|
|
}
|
|
public static void ResetGlobals()
|
|
{
|
|
#if UNITY_EDITOR
|
|
EditorPrefs.DeleteKey(GLOBAL_TIME_SCALE_PREF_NAME);
|
|
EditorPrefs.DeleteKey(GLOBAL_DOT_SIZE_PREF_NAME);
|
|
EditorPrefs.DeleteKey(GLOBAL_COLOR_PREF_NAME);
|
|
EditorPrefs.DeleteKey(GLOBAL_GREATER_PASS_ALPHA_PREF_NAME);
|
|
#endif
|
|
_timeScaleCache = default;
|
|
_dotSizeCache = default;
|
|
_globalColorCache = default;
|
|
_globalGreaterPassAlphaCache = default;
|
|
InitGlobals();
|
|
}
|
|
private static void InitGlobals()
|
|
{
|
|
#if UNITY_EDITOR
|
|
GlobalTimeScale = EditorPrefs.GetFloat(GLOBAL_TIME_SCALE_PREF_NAME, 1f);
|
|
GlobalDotSize = EditorPrefs.GetFloat(GLOBAL_DOT_SIZE_PREF_NAME, 1f);
|
|
var colorCode = EditorPrefs.GetInt(GLOBAL_COLOR_PREF_NAME, -1);
|
|
GlobalColor = (Color)(*(Color32*)&colorCode);
|
|
GlobalGreaterPassAlpha = EditorPrefs.GetFloat(GLOBAL_GREATER_PASS_ALPHA_PREF_NAME, 0.1f);
|
|
#else
|
|
GlobalTimeScale = 1;
|
|
GlobalDotSize = 1;
|
|
GlobalColor = Color.white;
|
|
GlobalGreaterPassAlpha = 0.1f;
|
|
#endif
|
|
}
|
|
}
|
|
} |