public override void OnInspectorGUI() { EntityObserver entityObserver = target as EntityObserver; if (mCurrSelectedEntity != entityObserver) { Array.Clear(mComponentsFoldOutInfo, 0, mComponentsFoldOutInfo.Length); mCurrSelectedEntity = entityObserver; } IEntity entity = entityObserver.Entity; EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.LabelField("Entity Info:", EditorStyles.boldLabel); EditorGUILayout.LabelField("Id", entity.Id.ToString()); EditorGUILayout.LabelField("Name", entity.Name); EditorGUILayout.Separator(); GUILayout.Space(20.0f); // display all components that are attached to the entity IComponentIterator componentIter = entity.GetComponentsIterator(); int i = 0; while (componentIter.MoveNext()) { _displayComponent(componentIter.Get(), i++, ref mComponentsFoldOutInfo); } EditorGUILayout.EndVertical(); Repaint(); }