private void DrawSceneOrPrefabListItem(SceneOrPrefab item) { var labelContent = new GUIContent(); EditorGUILayout.BeginVertical("Box"); EditorGUILayout.BeginHorizontal(SharedStyles.BuiltIn.listItemHeader); labelContent.text = item.name; EditorGUILayout.LabelField(labelContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical("Box"); labelContent.text = "Direct References"; EditorGUILayout.LabelField(labelContent, SharedStyles.BuiltIn.centeredWrappedText); item.directExpanded = EditorGUI.Foldout(GUILayoutUtility.GetLastRect(), item.directExpanded, GUIContent.none, true); if (item.directExpanded) { foreach (var aiRef in item.directReferences) { labelContent.text = aiRef.name; EditorGUILayout.LabelField(labelContent); } } EditorGUILayout.EndVertical(); if (item.indirectReferences.Count > 0) { EditorGUILayout.BeginVertical("Box"); labelContent.text = "Indirect References"; EditorGUILayout.LabelField(labelContent, SharedStyles.BuiltIn.centeredWrappedText); item.indirectExpanded = EditorGUI.Foldout(GUILayoutUtility.GetLastRect(), item.indirectExpanded, GUIContent.none, true); if (item.indirectExpanded) { foreach (var aiRef in item.indirectReferences) { labelContent.text = aiRef.name; EditorGUILayout.LabelField(labelContent); } } EditorGUILayout.EndVertical(); } EditorGUILayout.EndVertical(); }
private void CreateSceneOrPrefab(string name, IEnumerable <string> refedIds, bool isPrefab) { var s = new SceneOrPrefab(name, isPrefab); AIReference aiRef; foreach (var aiId in refedIds) { if (_aiReferences.TryGetValue(aiId, out aiRef)) { s.directReferences.Add(aiRef); } else { s.directReferences.Add(AIReference.missing); } } if (s.directReferences.Count > 0) { s.directReferences.Sort((a, b) => a.name.CompareTo(b.name)); _referencers.Add(s); } }