Exemplo n.º 1
0
        protected void DrawList <T>(GUIContent uIContent, Processer <T> processer) where T : Component
        {
            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(uIContent.text, GUILayout.Width(45));
                List <T> tempObj = DragAreaGetObject.GetOjbect <T>("(拖到这里来,可以多选)");
                foreach (var comp in tempObj)
                {
                    if (!processer.targets.Contains(comp))
                    {
                        Undo.RecordObject(processer, "TCameraEditorWindow add " + typeof(T).Name);
                        processer.targets.Add(comp);
                        EditorUtility.SetDirty(processer);
                    }
                }

                if (GUILayout.Button("清理", GUILayout.Width(40)))
                {
                    Undo.RecordObject(processer, "TCameraEditorWindow clear " + typeof(T).Name);
                    processer.targets.Clear();
                    EditorUtility.SetDirty(processer);
                }
                EditorGUILayout.EndHorizontal();

                if (processer.targets.Count > 0)
                {
                    for (int i = 0; i < processer.targets.Count; i++)
                    {
                        EditorGUILayout.BeginHorizontal();
                        GUILayout.Space(49);
                        processer.targets[i] = EditorGUILayout.ObjectField(processer.targets[i], typeof(T), true) as T;
                        if (GUILayout.Button("删除", GUILayout.Width(40)))
                        {
                            Undo.RecordObject(processer, "TCameraEditorWindow delete " + typeof(T).Name);
                            processer.targets.RemoveAt(i);
                            i--;
                            EditorUtility.SetDirty(processer);
                        }
                        EditorGUILayout.EndHorizontal();
                    }
                }
                EditorGUILayout.EndVertical();
            }
        }
Exemplo n.º 2
0
 protected void DrawList <T>(string title, Processer <T> processer) where T : Component
 {
     DrawList <T>(new GUIContent(title), processer);
 }