Seven is the number.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

137 lines
2.1 KiB

using UnityEngine;
using Photon.Bolt.Utils;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace Photon.Bolt.Internal
{
public class UnityDebugDrawer : IDebugDrawer
{
bool isEditor;
void IDebugDrawer.IsEditor(bool isEditor)
{
this.isEditor = isEditor;
}
void IDebugDrawer.SelectGameObject(GameObject gameObject)
{
#if UNITY_EDITOR
if (!isEditor)
{
Selection.activeGameObject = gameObject;
}
#endif
}
void IDebugDrawer.Indent(int level)
{
#if UNITY_EDITOR
if (isEditor)
{
EditorGUI.indentLevel = level;
return;
}
#endif
}
void IDebugDrawer.Label(string text)
{
#if UNITY_EDITOR
if (isEditor)
{
GUILayout.Label(text);
return;
}
#endif
DebugInfo.Label(text);
}
void IDebugDrawer.LabelBold(string text)
{
#if UNITY_EDITOR
if (isEditor)
{
GUILayout.Label(text, EditorStyles.boldLabel);
return;
}
#endif
DebugInfo.LabelBold(text);
}
void IDebugDrawer.LabelField(string text, object value)
{
#if UNITY_EDITOR
if (isEditor)
{
EditorGUILayout.LabelField(text, value.ToString());
return;
}
#endif
DebugInfo.LabelField(text, value);
}
void IDebugDrawer.Separator()
{
#if UNITY_EDITOR
if (isEditor)
{
EditorGUILayout.Separator();
return;
}
#endif
GUILayout.Space(2);
}
void IDebugDrawer.DrawObjectArray(IDebugDrawerObjectArray root)
{
#if UNITY_EDITOR
if (isEditor)
{
var fields = root.GetChildren();
for (int i = 0; i < fields.Length; i++)
{
DrawObjectArrayItem(fields[i]);
}
return;
}
#endif
}
private void DrawObjectArrayItem(IDebugDrawerObjectArray item)
{
#if UNITY_EDITOR
var fields = item.GetChildren();
if (fields.Length > 0)
{
item.IsVisible = EditorGUILayout.Foldout(item.IsVisible, item.GetName(), true);
if (item.IsVisible)
{
EditorGUI.indentLevel++;
for (int i = 0; i < fields.Length; i++)
{
DrawObjectArrayItem(fields[i]);
}
EditorGUI.indentLevel--;
}
}
else
{
(this as IDebugDrawer).LabelField(item.GetName(), item.GetValue());
}
#endif
}
}
}