} // BuildEventsInspectorGUI
private void BuildPreviewInspectorGUI()
{
PlayMakerArrayListProxy proxy = (PlayMakerArrayListProxy)target;
if (proxy.arrayList == null)
{
return;
}
int count = proxy.arrayList.Count;
BuildPreviewInspectorHeaderGUI(count);
if (!proxy.showContent)
{
return;
}
if (proxy.arrayList != null)
{
int start = proxy.contentPreviewStartIndex;
int last = Mathf.Min(count, proxy.contentPreviewStartIndex + proxy.contentPreviewMaxRows);
string label;
for (int i = start; i < last; i++)
{
label = "Item " + i;
EditorGUILayout.BeginHorizontal();
if (proxy.arrayList[i] != null)
{
if (proxy.arrayList[i].GetType() == typeof(bool))
{
proxy.arrayList[i] = (bool)EditorGUILayout.Toggle(label, (bool)proxy.arrayList[i]);
}
else if (proxy.arrayList[i].GetType() == typeof(Color))
{
proxy.arrayList[i] = (Color)EditorGUILayout.ColorField(label, (Color)proxy.arrayList[i]);
}
else if (proxy.arrayList[i].GetType() == typeof(float))
{
proxy.arrayList[i] = (float)EditorGUILayout.FloatField(label, (float)proxy.arrayList[i]);
}
else if (proxy.arrayList[i].GetType() == typeof(GameObject))
{
proxy.arrayList[i] = (GameObject)EditorGUILayout.ObjectField(label, (GameObject)proxy.arrayList[i], typeof(GameObject), true);
}
else if (proxy.arrayList[i].GetType() == typeof(int))
{
proxy.arrayList[i] = (int)EditorGUILayout.IntField(label, (int)proxy.arrayList[i]);
}
else if (proxy.arrayList[i].GetType() == typeof(Material))
{
proxy.arrayList[i] = (Material)EditorGUILayout.ObjectField(label, (Material)proxy.arrayList[i], typeof(Material), false);
}
else if (proxy.arrayList[i].GetType() == typeof(Object))
{
proxy.arrayList[i] = (Object)EditorGUILayout.ObjectField(label, (Object)proxy.arrayList[i], typeof(Object), true);
}
else if (proxy.arrayList[i].GetType() == typeof(Quaternion))
{
Quaternion q = (Quaternion)proxy.arrayList[i];
Vector4 quat = new Vector4(q[0], q[1], q[2], q[3]);
quat = EditorGUILayout.Vector4Field(label, quat);
q[0] = quat[0];
q[1] = quat[1];
q[2] = quat[2];
q[3] = quat[3];
proxy.arrayList[i] = q;
}
else if (proxy.arrayList[i].GetType() == typeof(Rect))
{
proxy.arrayList[i] = (Rect)EditorGUILayout.RectField(label, (Rect)proxy.arrayList[i]);
}
else if (proxy.arrayList[i].GetType() == typeof(string))
{
proxy.arrayList[i] = (string)EditorGUILayout.TextField(label, (string)proxy.arrayList[i]);
}
else if (proxy.arrayList[i].GetType() == typeof(Texture2D))
{
GUILayout.BeginHorizontal();
GUILayout.Space(15);
GUILayout.Label(label);
GUILayout.FlexibleSpace();
if (proxy.TextureElementSmall)
{
proxy.arrayList[i] = (Texture2D)EditorGUILayout.ObjectField((Texture2D)proxy.arrayList[i], typeof(Texture2D), false);
}
else
{
proxy.arrayList[i] = (Texture2D)EditorGUILayout.ObjectField("", (Texture2D)proxy.arrayList[i], typeof(Texture2D), false);
}
GUILayout.Space(5);
GUILayout.EndHorizontal();
}
else if (proxy.arrayList[i].GetType() == typeof(Vector2))
{
proxy.arrayList[i] = (Vector2)EditorGUILayout.Vector2Field(label, (Vector2)proxy.arrayList[i]);
}
else if (proxy.arrayList[i].GetType() == typeof(Vector3))
{
proxy.arrayList[i] = (Vector3)EditorGUILayout.Vector3Field(label, (Vector3)proxy.arrayList[i]);
}
else if (proxy.arrayList[i].GetType() == typeof(AudioClip))
{
proxy.arrayList[i] = (AudioClip)EditorGUILayout.ObjectField(label, (AudioClip)proxy.arrayList[i], typeof(AudioClip), true);
}
else if (proxy.arrayList[i].GetType() == typeof(Sprite))
{
proxy.arrayList[i] = (Sprite)EditorGUILayout.ObjectField(label, (Sprite)proxy.arrayList[i], typeof(Sprite), true);
}
else
{
//(FsmBool)proxy.arrayList[i].Value = (bool)EditorGUILayout.Toggle(label, (FsmBool)proxy.arrayList[i].Value);
// OUPS
Debug.Log(proxy.arrayList[i].GetType());
//EditorGUILayout.TextField(label, (string)proxy.arrayList[i]);
}
}
else
{
EditorGUILayout.LabelField(label, "-- NULL --");
}
EditorGUILayout.EndHorizontal();
if (Application.isPlaying && GUI.changed)
{
proxy.InspectorEdit(i);
}
}
}
else
{
EditorGUILayout.LabelField("-- Empty --", "");
}
if (proxy.liveUpdate)
{
Repaint();
}
}