using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using System;
|
|
public class FieldPrint
|
{
|
|
public static string PrintFields(object _object)
|
{
|
if (_object == null)
|
{
|
return string.Empty;
|
}
|
|
var fields = _object.GetType().GetFields();
|
var contents = new string[fields.Length];
|
for (int i = 0; i < fields.Length; i++)
|
{
|
var field = fields[i];
|
var fieldContent = field.GetValue(_object);
|
contents[i] = string.Format("\"{0}\":{1}", field.Name, fieldContent);
|
}
|
|
return string.Join("; ", contents);
|
}
|
|
public static List<string> PrintFieldsExpand(object _object, bool _includeArray)
|
{
|
if (_object == null)
|
{
|
return null;
|
}
|
|
var fields = _object.GetType().GetFields();
|
var contents = new List<string>();
|
for (int i = 0; i < fields.Length; i++)
|
{
|
var field = fields[i];
|
var fieldContent = field.GetValue(_object);
|
if (fieldContent is Array)
|
{
|
contents.AddRange(PrintArray(field.Name, fieldContent));
|
}
|
else
|
{
|
contents.Add(string.Format("\"{0}\":{1}", field.Name, fieldContent));
|
}
|
}
|
|
return contents;
|
}
|
|
private static string[] PrintArray(string _name, object _object)
|
{
|
var objects = _object as Array;
|
var contents = new string[objects.Length];
|
for (int i = 0; i < objects.Length; i++)
|
{
|
var o = objects.GetValue(i);
|
var type = o.GetType();
|
|
if (type.Name == "String")
|
{
|
contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (String)o);
|
}
|
else if (type.Name == "UInt32")
|
{
|
contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (UInt32)o);
|
}
|
else if (type.Name == "Byte")
|
{
|
contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (Byte)o);
|
}
|
else if (type.Name == "UInt16")
|
{
|
contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (UInt16)o);
|
}
|
else if (type.Name == "Single")
|
{
|
contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (float)o);
|
}
|
else if (type.Name == "Boolean")
|
{
|
contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (bool)o);
|
}
|
else if (type.Name == "Int32")
|
{
|
contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (int)o);
|
}
|
else
|
{
|
contents[i] = string.Format("\"{0}\"[{1}]-->{2}", _name, i, PrintFields(o));
|
}
|
}
|
|
return contents;
|
}
|
|
}
|