mirror of
https://github.com/DCFApixels/Unity-DebugX.git
synced 2025-09-18 01:54:37 +08:00
Compare commits
6 Commits
50fbaf1561
...
be682a4edd
Author | SHA1 | Date | |
---|---|---|---|
![]() |
be682a4edd | ||
![]() |
f440dfcb20 | ||
![]() |
e564799ffa | ||
![]() |
887b6dadb9 | ||
![]() |
d8098ff179 | ||
![]() |
57c6c27712 |
@ -12,9 +12,9 @@ using UnityEngine.LowLevel;
|
|||||||
using UnityEngine.PlayerLoop;
|
using UnityEngine.PlayerLoop;
|
||||||
using Unity.Collections.LowLevel.Unsafe;
|
using Unity.Collections.LowLevel.Unsafe;
|
||||||
using DCFApixels.DebugXCore.Internal;
|
using DCFApixels.DebugXCore.Internal;
|
||||||
|
using System.Linq;
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using System.Linq;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace DCFApixels
|
namespace DCFApixels
|
||||||
@ -53,7 +53,7 @@ namespace DCFApixels
|
|||||||
eventToClean = null;
|
eventToClean = null;
|
||||||
foreach (var delegateItem in validDelegates)
|
foreach (var delegateItem in validDelegates)
|
||||||
{
|
{
|
||||||
eventToClean += (OnDrawGizmoHandler)delegateItem;
|
eventToClean += (OnDrawGizmoHandler)delegateItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -63,7 +63,7 @@ namespace DCFApixels
|
|||||||
CleanupEvent(ref _onDrawGizmo);
|
CleanupEvent(ref _onDrawGizmo);
|
||||||
}
|
}
|
||||||
internal static void InvokeOnDrawGizmo(Camera camera)
|
internal static void InvokeOnDrawGizmo(Camera camera)
|
||||||
{
|
{
|
||||||
_onDrawGizmo(camera);
|
_onDrawGizmo(camera);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
//#undef DEBUG
|
using DCFApixels.DebugXCore;
|
||||||
using DCFApixels.DebugXCore;
|
|
||||||
using DCFApixels.DebugXCore.Internal;
|
using DCFApixels.DebugXCore.Internal;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using Unity.Collections.LowLevel.Unsafe;
|
using Unity.Collections.LowLevel.Unsafe;
|
||||||
@ -278,9 +277,11 @@ namespace DCFApixels
|
|||||||
_material = material;
|
_material = material;
|
||||||
_matrices = PinnedArray<Matrix4x4>.Pin(DummyArray<Matrix4x4>.Get());
|
_matrices = PinnedArray<Matrix4x4>.Pin(DummyArray<Matrix4x4>.Get());
|
||||||
_colors = PinnedArray<Vector4>.Pin(DummyArray<Vector4>.Get());
|
_colors = PinnedArray<Vector4>.Pin(DummyArray<Vector4>.Get());
|
||||||
|
#if UNITY_EDITOR
|
||||||
AssemblyReloadEvents.beforeAssemblyReload += AssemblyReloadEvents_beforeAssemblyReload;
|
AssemblyReloadEvents.beforeAssemblyReload += AssemblyReloadEvents_beforeAssemblyReload;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#if UNITY_EDITOR
|
||||||
private void AssemblyReloadEvents_beforeAssemblyReload()
|
private void AssemblyReloadEvents_beforeAssemblyReload()
|
||||||
{
|
{
|
||||||
AssemblyReloadEvents.beforeAssemblyReload -= AssemblyReloadEvents_beforeAssemblyReload;
|
AssemblyReloadEvents.beforeAssemblyReload -= AssemblyReloadEvents_beforeAssemblyReload;
|
||||||
@ -289,6 +290,7 @@ namespace DCFApixels
|
|||||||
_colors.Dispose();
|
_colors.Dispose();
|
||||||
_gizmos.Dispose();
|
_gizmos.Dispose();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
public void Prepare(GizmosList rawList)
|
public void Prepare(GizmosList rawList)
|
||||||
{
|
{
|
||||||
var list = rawList.As<GizmoData>();
|
var list = rawList.As<GizmoData>();
|
||||||
@ -391,9 +393,11 @@ namespace DCFApixels
|
|||||||
_materialPropertyBlock = new MaterialPropertyBlock();
|
_materialPropertyBlock = new MaterialPropertyBlock();
|
||||||
_drawDatas = PinnedArray<DrawData>.Pin(DummyArray<DrawData>.Get());
|
_drawDatas = PinnedArray<DrawData>.Pin(DummyArray<DrawData>.Get());
|
||||||
_enableInstancing = IsSupportsComputeShaders && _material.GetMaterial().enableInstancing;
|
_enableInstancing = IsSupportsComputeShaders && _material.GetMaterial().enableInstancing;
|
||||||
|
#if UNITY_EDITOR
|
||||||
AssemblyReloadEvents.beforeAssemblyReload += AssemblyReloadEvents_beforeAssemblyReload;
|
AssemblyReloadEvents.beforeAssemblyReload += AssemblyReloadEvents_beforeAssemblyReload;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#if UNITY_EDITOR
|
||||||
private void AssemblyReloadEvents_beforeAssemblyReload()
|
private void AssemblyReloadEvents_beforeAssemblyReload()
|
||||||
{
|
{
|
||||||
AssemblyReloadEvents.beforeAssemblyReload -= AssemblyReloadEvents_beforeAssemblyReload;
|
AssemblyReloadEvents.beforeAssemblyReload -= AssemblyReloadEvents_beforeAssemblyReload;
|
||||||
@ -403,7 +407,7 @@ namespace DCFApixels
|
|||||||
_drawDatas.Dispose();
|
_drawDatas.Dispose();
|
||||||
_gizmos.Dispose();
|
_gizmos.Dispose();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
public virtual int ExecuteOrder => _material.GetExecuteOrder();
|
public virtual int ExecuteOrder => _material.GetExecuteOrder();
|
||||||
public virtual bool IsStaticRender => true;
|
public virtual bool IsStaticRender => true;
|
||||||
protected void Prepare(GizmosList rawList)
|
protected void Prepare(GizmosList rawList)
|
||||||
@ -412,8 +416,8 @@ namespace DCFApixels
|
|||||||
_prepareCount = list.Count;
|
_prepareCount = list.Count;
|
||||||
var items = list.Items;
|
var items = list.Items;
|
||||||
var count = list.Count;
|
var count = list.Count;
|
||||||
|
|
||||||
if (_buffersLength < count)
|
if (_buffersLength < count)
|
||||||
{
|
{
|
||||||
int capacity = DebugXUtility.NextPow2(count);
|
int capacity = DebugXUtility.NextPow2(count);
|
||||||
_drawDatas.Dispose();
|
_drawDatas.Dispose();
|
||||||
@ -520,9 +524,11 @@ namespace DCFApixels
|
|||||||
_materialPropertyBlock = new MaterialPropertyBlock();
|
_materialPropertyBlock = new MaterialPropertyBlock();
|
||||||
_drawDatas = PinnedArray<DrawData>.Pin(DummyArray<DrawData>.Get());
|
_drawDatas = PinnedArray<DrawData>.Pin(DummyArray<DrawData>.Get());
|
||||||
_enableInstancing = IsSupportsComputeShaders && _material.GetMaterial().enableInstancing;
|
_enableInstancing = IsSupportsComputeShaders && _material.GetMaterial().enableInstancing;
|
||||||
|
#if UNITY_EDITOR
|
||||||
AssemblyReloadEvents.beforeAssemblyReload += AssemblyReloadEvents_beforeAssemblyReload;
|
AssemblyReloadEvents.beforeAssemblyReload += AssemblyReloadEvents_beforeAssemblyReload;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#if UNITY_EDITOR
|
||||||
private void AssemblyReloadEvents_beforeAssemblyReload()
|
private void AssemblyReloadEvents_beforeAssemblyReload()
|
||||||
{
|
{
|
||||||
AssemblyReloadEvents.beforeAssemblyReload -= AssemblyReloadEvents_beforeAssemblyReload;
|
AssemblyReloadEvents.beforeAssemblyReload -= AssemblyReloadEvents_beforeAssemblyReload;
|
||||||
@ -532,6 +538,7 @@ namespace DCFApixels
|
|||||||
_drawDatas.Dispose();
|
_drawDatas.Dispose();
|
||||||
_gizmos.Dispose();
|
_gizmos.Dispose();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
public virtual int ExecuteOrder => _material.GetExecuteOrder() - 1;
|
public virtual int ExecuteOrder => _material.GetExecuteOrder() - 1;
|
||||||
public virtual bool IsStaticRender => true;
|
public virtual bool IsStaticRender => true;
|
||||||
public void Prepare(GizmosList rawList)
|
public void Prepare(GizmosList rawList)
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
//#undef DEBUG
|
using DCFApixels.DebugXCore;
|
||||||
using DCFApixels.DebugXCore;
|
|
||||||
using System;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Rendering;
|
|
||||||
|
|
||||||
namespace DCFApixels
|
namespace DCFApixels
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
//#undef DEBUG
|
using DCFApixels.DebugXCore;
|
||||||
using DCFApixels.DebugXCore;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -27,7 +26,7 @@ namespace DCFApixels
|
|||||||
}
|
}
|
||||||
[IN(LINE)] public DrawHandler Lines(List<Vector3> points) => Lines(points, 0, points.Count);
|
[IN(LINE)] public DrawHandler Lines(List<Vector3> points) => Lines(points, 0, points.Count);
|
||||||
[IN(LINE)] public DrawHandler Lines(List<Vector3> points, int length) => Lines(points, 0, length);
|
[IN(LINE)] public DrawHandler Lines(List<Vector3> points, int length) => Lines(points, 0, length);
|
||||||
[IN(LINE)]
|
[IN(LINE)]
|
||||||
public DrawHandler Lines(List<Vector3> points, int startIndex, int length)
|
public DrawHandler Lines(List<Vector3> points, int startIndex, int length)
|
||||||
{
|
{
|
||||||
for (int i = startIndex, iMax = startIndex + (length & ~1); i < iMax;)
|
for (int i = startIndex, iMax = startIndex + (length & ~1); i < iMax;)
|
||||||
@ -69,7 +68,7 @@ namespace DCFApixels
|
|||||||
[IN(LINE)]
|
[IN(LINE)]
|
||||||
public DrawHandler LineStrip(List<Vector3> points, int startIndex, int length)
|
public DrawHandler LineStrip(List<Vector3> points, int startIndex, int length)
|
||||||
{
|
{
|
||||||
for (int i = startIndex, iMax = startIndex + length; i < iMax;)
|
for (int i = startIndex, iMax = startIndex + length - 1; i < iMax;)
|
||||||
{
|
{
|
||||||
Line(points[i], points[++i]);
|
Line(points[i], points[++i]);
|
||||||
}
|
}
|
||||||
@ -147,7 +146,7 @@ namespace DCFApixels
|
|||||||
[IN(LINE)]
|
[IN(LINE)]
|
||||||
public DrawHandler LineStrip(List<Vector2> points, int startIndex, int length)
|
public DrawHandler LineStrip(List<Vector2> points, int startIndex, int length)
|
||||||
{
|
{
|
||||||
for (int i = startIndex, iMax = startIndex + length; i < iMax;)
|
for (int i = startIndex, iMax = startIndex + length - 1; i < iMax;)
|
||||||
{
|
{
|
||||||
Line(points[i], points[++i]);
|
Line(points[i], points[++i]);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
//#undef DEBUG
|
using DCFApixels.DebugXCore;
|
||||||
using DCFApixels.DebugXCore;
|
|
||||||
using System;
|
using System;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Rendering;
|
using UnityEngine.Rendering;
|
||||||
@ -409,7 +408,7 @@ namespace DCFApixels
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
Vector3 halfSize = size / 2f;
|
Vector3 halfSize = size / 2f;
|
||||||
|
|
||||||
Vector3* vertices = stackalloc Vector3[]
|
Vector3* vertices = stackalloc Vector3[]
|
||||||
{
|
{
|
||||||
new Vector3(-halfSize.x, -halfSize.y, -halfSize.z), // 0
|
new Vector3(-halfSize.x, -halfSize.y, -halfSize.z), // 0
|
||||||
@ -421,12 +420,12 @@ namespace DCFApixels
|
|||||||
new Vector3(halfSize.x, halfSize.y, halfSize.z), // 6
|
new Vector3(halfSize.x, halfSize.y, halfSize.z), // 6
|
||||||
new Vector3(-halfSize.x, halfSize.y, halfSize.z), // 7
|
new Vector3(-halfSize.x, halfSize.y, halfSize.z), // 7
|
||||||
};
|
};
|
||||||
|
|
||||||
for (int i = 0; i < 8; i++)
|
for (int i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
vertices[i] = rotation * vertices[i] + position;
|
vertices[i] = rotation * vertices[i] + position;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector3 up = rotation * Vector3.up * (size.y / cells.y);
|
Vector3 up = rotation * Vector3.up * (size.y / cells.y);
|
||||||
for (int i = 0; i <= cells.y; i++)
|
for (int i = 0; i <= cells.y; i++)
|
||||||
{
|
{
|
||||||
@ -454,7 +453,7 @@ namespace DCFApixels
|
|||||||
Line(vertices[1] + pos, vertices[0] + pos);
|
Line(vertices[1] + pos, vertices[0] + pos);
|
||||||
Line(vertices[0] + pos, vertices[4] + pos);
|
Line(vertices[0] + pos, vertices[4] + pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
//#undef DEBUG
|
using DCFApixels.DebugXCore.Internal;
|
||||||
using DCFApixels.DebugXCore.Internal;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace DCFApixels
|
namespace DCFApixels
|
||||||
|
@ -1,244 +0,0 @@
|
|||||||
using DCFApixels.DebugXCore;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.Rendering;
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace DCFApixels
|
|
||||||
{
|
|
||||||
using IN = System.Runtime.CompilerServices.MethodImplAttribute;
|
|
||||||
|
|
||||||
public static partial class DebugX
|
|
||||||
{
|
|
||||||
public readonly partial struct DrawHandler
|
|
||||||
{
|
|
||||||
#region Text
|
|
||||||
[IN(LINE)] public DrawHandler Text(Vector3 position, object text) => Gizmo(new TextGizmo(position, text, DebugXTextSettings.Default));
|
|
||||||
[IN(LINE)] public DrawHandler Text(Vector3 position, object text, DebugXTextSettings settings) => Gizmo(new TextGizmo(position, text, settings));
|
|
||||||
|
|
||||||
private readonly struct TextGizmo : IGizmo<TextGizmo>
|
|
||||||
{
|
|
||||||
public readonly Vector3 Position;
|
|
||||||
public readonly string Text;
|
|
||||||
public readonly DebugXTextSettings Settings;
|
|
||||||
[IN(LINE)]
|
|
||||||
public TextGizmo(Vector3 position, object text, DebugXTextSettings settings)
|
|
||||||
{
|
|
||||||
Position = position;
|
|
||||||
Text = text.ToString();
|
|
||||||
Settings = settings;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IGizmoRenderer<TextGizmo> RegisterNewRenderer() { return new Renderer(); }
|
|
||||||
|
|
||||||
#region Renderer
|
|
||||||
private class Renderer : IGizmoRenderer_PostRender<TextGizmo>
|
|
||||||
{
|
|
||||||
private static GUIStyle _labelStyle;
|
|
||||||
private static GUIContent _labelDummy;
|
|
||||||
private static Texture2D _whiteTexture;
|
|
||||||
public int ExecuteOrder => default(UnlitMat).GetExecuteOrder();
|
|
||||||
public bool IsStaticRender => false;
|
|
||||||
public void Prepare(Camera camera, GizmosList<TextGizmo> list) { }
|
|
||||||
public void Render(Camera camera, GizmosList<TextGizmo> list, CommandBuffer cb) { }
|
|
||||||
public void PostRender(Camera camera, GizmosList<TextGizmo> list)
|
|
||||||
{
|
|
||||||
if (camera == null) { return; }
|
|
||||||
if (Event.current.type != EventType.Repaint) { return; }
|
|
||||||
Color dfColor = GUI.color;
|
|
||||||
InitStatic();
|
|
||||||
bool isSceneView = false;
|
|
||||||
var backgroundMaterial = DebugXAssets.Materials.TextBackground;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
//TODO костыльный вариант, нужно поискать более надежный способ определить рендер SceneView
|
|
||||||
isSceneView = camera.name == "SceneCamera";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (isSceneView)
|
|
||||||
{
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
Handles.BeginGUI();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GL.PushMatrix();
|
|
||||||
GL.LoadPixelMatrix(0, Screen.width, Screen.height, 0);
|
|
||||||
}
|
|
||||||
foreach (ref readonly var item in list)
|
|
||||||
{
|
|
||||||
_labelDummy.text = item.Value.Text;
|
|
||||||
GUIStyle style = _labelStyle;
|
|
||||||
|
|
||||||
var zoom = GetCameraZoom(camera, item.Value.Position);
|
|
||||||
|
|
||||||
style.fontSize = Mathf.FloorToInt(Mathf.Lerp(item.Value.Settings.FontSize, item.Value.Settings.FontSize / zoom, item.Value.Settings.WorldSpaceScaleFactor));
|
|
||||||
|
|
||||||
style.alignment = item.Value.Settings.TextAnchor;
|
|
||||||
if (!(WorldToGUIPointWithDepth(camera, item.Value.Position).z < 0f))
|
|
||||||
{
|
|
||||||
Rect rect = WorldPointToSizedRect(camera, item.Value.Position, _labelDummy, _labelStyle);
|
|
||||||
Color backgroundColor = item.Value.Settings.BackgroundColor * GlobalColor;
|
|
||||||
Graphics.DrawTexture(rect, _whiteTexture, new Rect(0, 0, 1, 1), 0, 0, 0, 0, backgroundColor, backgroundMaterial, -1);
|
|
||||||
GUI.color = item.Color * GlobalColor;
|
|
||||||
style.Draw(rect, _labelDummy, false, false, false, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
GUI.color = dfColor;
|
|
||||||
backgroundMaterial.SetColor(ColorPropertyID, Color.white);
|
|
||||||
|
|
||||||
if (isSceneView)
|
|
||||||
{
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
Handles.EndGUI();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GL.PopMatrix();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Init
|
|
||||||
private void InitStatic()
|
|
||||||
{
|
|
||||||
if (_labelStyle == null || _labelDummy == null || _whiteTexture == null)
|
|
||||||
{
|
|
||||||
GUIStyleState GenerateGUIStyleState()
|
|
||||||
{
|
|
||||||
var result = new GUIStyleState();
|
|
||||||
result.textColor = Color.white;
|
|
||||||
result.background = null;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
GUISkin skin = (GUISkin)typeof(GUI).GetField("s_Skin", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static).GetValue(null); //GUI.s_Skin
|
|
||||||
//GUISkin skin = GUI.skin;
|
|
||||||
_labelStyle = new GUIStyle(skin.label)
|
|
||||||
{
|
|
||||||
richText = false,
|
|
||||||
padding = new RectOffset(1, 1, 0, 0),
|
|
||||||
margin = new RectOffset(0, 0, 0, 0),
|
|
||||||
normal = GenerateGUIStyleState(),
|
|
||||||
active = GenerateGUIStyleState(),
|
|
||||||
hover = GenerateGUIStyleState(),
|
|
||||||
focused = GenerateGUIStyleState(),
|
|
||||||
};
|
|
||||||
|
|
||||||
_labelDummy = new GUIContent();
|
|
||||||
|
|
||||||
_whiteTexture = new Texture2D(2, 2);
|
|
||||||
Color32[] color = new Color32[]
|
|
||||||
{
|
|
||||||
Color.white,
|
|
||||||
Color.white,
|
|
||||||
Color.white,
|
|
||||||
Color.white,
|
|
||||||
};
|
|
||||||
_whiteTexture.SetPixels32(color);
|
|
||||||
_whiteTexture.Apply();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Utils
|
|
||||||
public static Vector3 WorldToGUIPointWithDepth(Camera camera, Vector3 world)
|
|
||||||
{
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
world = Handles.matrix.MultiplyPoint(world);
|
|
||||||
#endif
|
|
||||||
Vector3 vector = camera.WorldToScreenPoint(world);
|
|
||||||
vector.y = camera.pixelHeight - vector.y;
|
|
||||||
Vector2 vector2 = (Vector2)(vector);
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
vector2 = EditorGUIUtility.PixelsToPoints(vector);
|
|
||||||
#endif
|
|
||||||
return new Vector3(vector2.x, vector2.y, vector.z);
|
|
||||||
}
|
|
||||||
public static Rect WorldPointToSizedRect(Camera camera, Vector3 position, GUIContent content, GUIStyle style)
|
|
||||||
{
|
|
||||||
Vector2 vector = (Vector2)WorldToGUIPointWithDepth(camera, position);
|
|
||||||
Vector2 vector2 = style.CalcSize(content);
|
|
||||||
Rect rect = new Rect(vector.x, vector.y, vector2.x, vector2.y);
|
|
||||||
switch (style.alignment)
|
|
||||||
{
|
|
||||||
case TextAnchor.UpperCenter:
|
|
||||||
rect.x -= rect.width * 0.5f;
|
|
||||||
break;
|
|
||||||
case TextAnchor.UpperRight:
|
|
||||||
rect.x -= rect.width;
|
|
||||||
break;
|
|
||||||
case TextAnchor.MiddleLeft:
|
|
||||||
rect.y -= rect.height * 0.5f;
|
|
||||||
break;
|
|
||||||
case TextAnchor.MiddleCenter:
|
|
||||||
rect.x -= rect.width * 0.5f;
|
|
||||||
rect.y -= rect.height * 0.5f;
|
|
||||||
break;
|
|
||||||
case TextAnchor.MiddleRight:
|
|
||||||
rect.x -= rect.width;
|
|
||||||
rect.y -= rect.height * 0.5f;
|
|
||||||
break;
|
|
||||||
case TextAnchor.LowerLeft:
|
|
||||||
rect.y -= rect.height;
|
|
||||||
break;
|
|
||||||
case TextAnchor.LowerCenter:
|
|
||||||
rect.x -= rect.width * 0.5f;
|
|
||||||
rect.y -= rect.height;
|
|
||||||
break;
|
|
||||||
case TextAnchor.LowerRight:
|
|
||||||
rect.x -= rect.width;
|
|
||||||
rect.y -= rect.height;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return style.padding.Add(rect);
|
|
||||||
}
|
|
||||||
private static float GetCameraZoom(Camera camera, Vector3 position)
|
|
||||||
{
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
position = Handles.matrix.MultiplyPoint(position);
|
|
||||||
#endif
|
|
||||||
Transform transform = camera.transform;
|
|
||||||
Vector3 position2 = transform.position;
|
|
||||||
float z = Vector3.Dot(position - position2, transform.TransformDirection(new Vector3(0f, 0f, 1f)));
|
|
||||||
Vector3 vector = camera.WorldToScreenPoint(position2 + transform.TransformDirection(new Vector3(0f, 0f, z)));
|
|
||||||
Vector3 vector2 = camera.WorldToScreenPoint(position2 + transform.TransformDirection(new Vector3(1f, 0f, z)));
|
|
||||||
float magnitude = (vector - vector2).magnitude;
|
|
||||||
//return 80f / Mathf.Max(magnitude, 0.0001f) * EditorGUIUtility.pixelsPerPoint;
|
|
||||||
return 80f / Mathf.Max(magnitude, 0.0001f);
|
|
||||||
|
|
||||||
|
|
||||||
//const float DEFAULT_ZOOM = 1f;
|
|
||||||
//
|
|
||||||
//if (camera != null)
|
|
||||||
//{
|
|
||||||
// return camera.orthographicSize;
|
|
||||||
//}
|
|
||||||
//return DEFAULT_ZOOM;
|
|
||||||
|
|
||||||
//var currentDrawingSceneView = SceneView.currentDrawingSceneView;
|
|
||||||
//
|
|
||||||
//if (currentDrawingSceneView == null)
|
|
||||||
//{
|
|
||||||
// return DEFAULT_ZOOM;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//var localCamera = currentDrawingSceneView.camera;
|
|
||||||
//
|
|
||||||
//if (localCamera != null)
|
|
||||||
//{
|
|
||||||
// return localCamera.orthographicSize;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//return DEFAULT_ZOOM;
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c465dc7f5c78c9549a063ecfc5e8326d
|
|
@ -17,7 +17,7 @@ namespace DCFApixels
|
|||||||
[IN(LINE)]
|
[IN(LINE)]
|
||||||
public static DrawHandler Text(this DrawHandler h, Vector3 position, object text, DebugXTextSettings settings)
|
public static DrawHandler Text(this DrawHandler h, Vector3 position, object text, DebugXTextSettings settings)
|
||||||
{
|
{
|
||||||
if(settings.FontSize <= float.Epsilon)
|
if (settings.FontSize <= float.Epsilon)
|
||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
if (_singleWarningToggle)
|
if (_singleWarningToggle)
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
using DCFApixels.DebugXCore;
|
using DCFApixels.DebugXCore;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using UnityEditor;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Rendering;
|
using UnityEngine.Rendering;
|
||||||
|
//#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
//#endif
|
||||||
|
|
||||||
namespace DCFApixels
|
namespace DCFApixels
|
||||||
{
|
{
|
||||||
@ -75,13 +77,13 @@ namespace DCFApixels
|
|||||||
if (item.Value.Settings.IsHasBackground)
|
if (item.Value.Settings.IsHasBackground)
|
||||||
{
|
{
|
||||||
Color backgroundColor = item.Value.Settings.BackgroundColor * DebugX.GlobalColor;
|
Color backgroundColor = item.Value.Settings.BackgroundColor * DebugX.GlobalColor;
|
||||||
if(fontSize < 1)
|
if (fontSize < 1)
|
||||||
{
|
{
|
||||||
backgroundColor.a *= fontSize;
|
backgroundColor.a *= fontSize;
|
||||||
}
|
}
|
||||||
Graphics.DrawTexture(rect, _whiteTexture, new Rect(0, 0, 1, 1), 0, 0, 0, 0, backgroundColor, backgroundMaterial, -1);
|
Graphics.DrawTexture(rect, _whiteTexture, new Rect(0, 0, 1, 1), 0, 0, 0, 0, backgroundColor, backgroundMaterial, -1);
|
||||||
}
|
}
|
||||||
Color color= item.Color * DebugX.GlobalColor;
|
Color color = item.Color * DebugX.GlobalColor;
|
||||||
if (fontSize < 1)
|
if (fontSize < 1)
|
||||||
{
|
{
|
||||||
color.a *= fontSize;
|
color.a *= fontSize;
|
||||||
@ -202,14 +204,20 @@ namespace DCFApixels
|
|||||||
}
|
}
|
||||||
private static float GetCameraZoom(Camera camera, Vector3 position)
|
private static float GetCameraZoom(Camera camera, Vector3 position)
|
||||||
{
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
position = Handles.matrix.MultiplyPoint(position);
|
position = Handles.matrix.MultiplyPoint(position);
|
||||||
|
#endif
|
||||||
Transform cameraTransform = camera.transform;
|
Transform cameraTransform = camera.transform;
|
||||||
Vector3 cameraPos = cameraTransform.position;
|
Vector3 cameraPos = cameraTransform.position;
|
||||||
float z = Vector3.Dot(position - cameraPos, cameraTransform.TransformDirection(new Vector3(0f, 0f, 1f)));
|
float z = Vector3.Dot(position - cameraPos, cameraTransform.TransformDirection(new Vector3(0f, 0f, 1f)));
|
||||||
Vector3 pos1 = camera.WorldToScreenPoint(cameraPos + cameraTransform.TransformDirection(new Vector3(0f, 0f, z)));
|
Vector3 pos1 = camera.WorldToScreenPoint(cameraPos + cameraTransform.TransformDirection(new Vector3(0f, 0f, z)));
|
||||||
Vector3 pos2 = camera.WorldToScreenPoint(cameraPos + cameraTransform.TransformDirection(new Vector3(1f, 0f, z)));
|
Vector3 pos2 = camera.WorldToScreenPoint(cameraPos + cameraTransform.TransformDirection(new Vector3(1f, 0f, z)));
|
||||||
float magnitude = (pos1 - pos2).magnitude;
|
float magnitude = (pos1 - pos2).magnitude;
|
||||||
|
#if UNITY_EDITOR
|
||||||
return 80f / Mathf.Max(magnitude, 0.0001f) * EditorGUIUtility.pixelsPerPoint;
|
return 80f / Mathf.Max(magnitude, 0.0001f) * EditorGUIUtility.pixelsPerPoint;
|
||||||
|
#else
|
||||||
|
return 80f / Mathf.Max(magnitude, 0.0001f);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using Unity.Collections.LowLevel.Unsafe;
|
using Unity.Collections.LowLevel.Unsafe;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
"displayName": "DebugX",
|
"displayName": "DebugX",
|
||||||
"description": "",
|
"description": "",
|
||||||
"unity": "2021.3",
|
"unity": "2021.3",
|
||||||
"version": "0.8.5",
|
"version": "0.8.7",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/DCFApixels/DebugX.git"
|
"url": "https://github.com/DCFApixels/DebugX.git"
|
||||||
|
Loading…
Reference in New Issue
Block a user