void OnHierarchyChange() { ReferenceExplorerData.RestoreAllData(); UpdateReferenceInfomation(); Repaint(); }
public static void DisappearObjects() { ReferenceExplorerData.RestoreAllData(); ReferenceExplorerData.RestoreComponentReferenceData(); var objects = ReferenceExplorerData.allObjects; foreach (var obj in objects) { obj.hideFlags = HideFlags.HideInHierarchy; } foreach (var component in ReferenceExplorerData.allReferenceInfo) { var fromObject = ReferenceExplorerUtility.GetGameObject(component.fromObject); var referencetarget = ReferenceExplorerUtility.GetGameObject(component.referenceTarget); if (fromObject != null) { Appear(fromObject.transform); } if (referencetarget != null) { Appear(referencetarget.transform); } } }
void OnSelectionChange() { ReferenceExplorerData.RestoreComponentReferenceData(); UpdateReferenceInfomation(); SceneView.RepaintAll(); Repaint(); }
void OnHierarchyChange() { ReferenceExplorerData.RestoreAllData(); CallbackData.UpdateSenderRecieverlist(); CallbackData.UpdateCallbacklist(isSelectedObject, searchText); }
void OnEnable() { codeSearch = new CodeSearch(); ReferenceExplorerData.RestoreAllData(); CallbackData.UpdateSenderRecieverlist(); CallbackData.UpdateCallbacklist(isSelectedObject, searchText); }
public static void AppearObjects() { ReferenceExplorerData.RestoreAllData(); var objects = ReferenceExplorerData.allObjects; foreach (var obj in objects) { obj.hideFlags = HideFlags.None; } }
void UpdateReferenceInfomation() { if (!isLocked) { var currentObject = Selection.gameObjects; selectedObjects = currentObject; } if (selectedObjects == null) { return; } referenceList = ReferenceExplorerData.AllReferenceComponent(selectedObjects, ignoreReferenceType, search); referencedByList = ReferenceExplorerData.AllReferencedByComponent(selectedObjects, ignoreReferenceType, search); }
public static void DisappearObjectsWithFamillyReference() { ReferenceExplorerData.RestoreAllData(); ReferenceExplorerData.RestoreComponentReferenceData(); var objects = ReferenceExplorerData.allObjects; foreach (var obj in objects) { obj.hideFlags = HideFlags.HideInHierarchy; } foreach (var component in ReferenceExplorerData.allReferenceInfo) { var fromObject = ReferenceExplorerUtility.GetGameObject(component.fromObject); var referencetarget = ReferenceExplorerUtility.GetGameObject(component.referenceTarget); if (fromObject != null) { if (fromObject.transform.GetComponentsInChildren <Component> ().Any(item => item.gameObject == referencetarget) == false && fromObject.transform.GetComponentsInParent <Component> ().Any(item => item.gameObject == referencetarget) == false) { Appear(fromObject.transform); } } if (referencetarget != null) { if (referencetarget.transform.GetComponentsInChildren <Component> ().Any(item => item.gameObject == fromObject) == false && referencetarget.transform.GetComponentsInParent <Component> ().Any(item => item.gameObject == fromObject) == false) { Appear(referencetarget.transform); } } } }
void OnEnable() { SceneView.onSceneGUIDelegate += OnSceneGUI; ReferenceExplorerData.RestoreAllData(); UpdateReferenceInfomation(); }
void OnSelectionChange() { ReferenceExplorerData.RestoreComponentReferenceData(); ReferenceExplorerData.UpdateSelectedComponentList(); Repaint(); }
public static void Export(bool isContainReferences, bool isContainCallbacks, bool isOnlyComponent) { try{ EditorUtility.DisplayProgressBar("Export Comonent Graph", "Collection All Types", 0); ReferenceExplorerData.RestoreAllData(); List <ReferenceInfomation> refList = new List <ReferenceInfomation>(); List <Type> refTypes = new List <Type>(); if (isContainReferences) { Collection(refList, refTypes, isOnlyComponent); } if (isContainCallbacks) { foreach (var callback in CallbackData.callbackList) { var result = CallbackData.buidinCallback.Where(item => item.callbacks.Contains(callback.callback)); if (result.Count() == 0) { continue; } var buldinCallback = result.First(); if (buldinCallback != null) { refTypes.Add(buldinCallback.senderComponent); } else { refTypes.AddRange(callback.senderTypeList); refTypes.AddRange(callback.recieverTypeList); } } } var uniqueTypes = refTypes.Where(item => item != null).Distinct(); var uniqueRefList = refList.Where(item => item != null).Distinct(); EditorUtility.DisplayProgressBar("Export Comonent Graph", "writing", 1); StringBuilder exportBuilder = new StringBuilder(); exportBuilder.AppendLine("graph"); exportBuilder.AppendLine("["); foreach (var type in uniqueTypes) { exportBuilder.AppendLine(" node"); exportBuilder.AppendLine(" ["); exportBuilder.AppendLine(" id "+ type.GetHashCode()); exportBuilder.AppendLine(" label \""+ type.Name + "\""); exportBuilder.AppendLine(" graphics"); exportBuilder.AppendLine(" ["); exportBuilder.AppendLine(" w "+ type.Name.Length * 10); if (type.IsSubclassOf(typeof(MonoBehaviour))) { exportBuilder.AppendLine(" fill \"#FFFF99\""); } else if (type.IsSubclassOf(typeof(Component))) { exportBuilder.AppendLine(" fill \"#ccccff\""); } else { exportBuilder.AppendLine(" fill \"#ff99cc\""); } exportBuilder.AppendLine(" ]"); exportBuilder.AppendLine(" ]"); } foreach (var refType in uniqueRefList) { exportBuilder.AppendLine(" edge"); exportBuilder.AppendLine(" ["); exportBuilder.AppendLine(" source "+ refType.from.GetHashCode()); exportBuilder.AppendLine(" target "+ refType.to.GetHashCode()); exportBuilder.AppendLine(" ]"); } foreach (var callback in CallbackData.callbackList) { foreach (var sender in callback.senderTypeList) { foreach (var reciever in callback.recieverTypeList) { exportBuilder.AppendLine(" edge"); exportBuilder.AppendLine(" ["); exportBuilder.AppendLine(" source "+ reciever.GetHashCode()); exportBuilder.AppendLine(" target "+ sender.GetHashCode()); exportBuilder.AppendLine(" graphics"); exportBuilder.AppendLine(" ["); exportBuilder.AppendLine(" sourceArrow \"white_delta\""); exportBuilder.AppendLine(" style \"dashed\""); exportBuilder.AppendLine(" ]"); exportBuilder.AppendLine(" ]"); } } var buidinSender = System.Array.Find <UnityengineCallback>(CallbackData.buidinCallback, item => item.callbacks.Contains(callback.callback)); if (buidinSender != null && buidinSender.senderComponent != null) { foreach (var reciever in callback.recieverTypeList) { exportBuilder.AppendLine(" edge"); exportBuilder.AppendLine(" ["); exportBuilder.AppendLine(" source "+ reciever.GetHashCode()); exportBuilder.AppendLine(" target "+ buidinSender.senderComponent.GetHashCode()); exportBuilder.AppendLine(" graphics"); exportBuilder.AppendLine(" ["); exportBuilder.AppendLine(" sourceArrow \"white_delta\""); exportBuilder.AppendLine(" style \"dashed\""); exportBuilder.AppendLine(" ]"); exportBuilder.AppendLine(" ]"); } } } exportBuilder.AppendLine("]"); EditorUtility.DisplayProgressBar("Export Comonent Graph", "exporting", 1); System.IO.File.WriteAllText(System.DateTime.Now.ToFileTime() + ".gml", exportBuilder.ToString()); }catch (Exception c) { Debug.LogError(c.Message); }finally{ EditorUtility.ClearProgressBar(); } }
public static void ExportObjectReference(bool isContainFamilly, bool isContainCallbacks) { try{ ReferenceExplorerData.RestoreAllData(); EditorUtility.DisplayProgressBar("Export GameObject Graph", "get all objects", 0); var objectNames = ReferenceExplorerData.allReferenceInfo .Where(item => ReferenceExplorerUtility.GetGameObject(item.referenceTarget) != null && ReferenceExplorerUtility.GetGameObject(item.referenceTarget) != null) .SelectMany(item => new GameObject[] { ReferenceExplorerUtility.GetGameObject(item.referenceTarget), ReferenceExplorerUtility.GetGameObject(item.fromObject) }).Distinct(); EditorUtility.DisplayProgressBar("Export GameObject Graph", "check reference", 0.2f); List <ReferenceInfoObject> referenceInfoList = new List <ReferenceInfoObject>(); foreach (var referenceInfo in ReferenceExplorerData.allReferenceInfo) { var fromObject = ReferenceExplorerUtility.GetGameObject(referenceInfo.fromObject); var targetObject = ReferenceExplorerUtility.GetGameObject(referenceInfo.referenceTarget); if (targetObject == null || fromObject == null) { continue; } if (isContainFamilly == false && ReferenceExplorerUtility.IsFamilly(fromObject, targetObject)) { continue; } if (referenceInfoList.Any(item => ReferenceExplorerUtility.GetGameObject(item.fromObject) == fromObject || ReferenceExplorerUtility.GetGameObject(item.targetObject) == targetObject) == true || fromObject == targetObject) { continue; } referenceInfoList.Add(new ReferenceInfoObject() { targetObject = fromObject, fromObject = targetObject, }); } EditorUtility.DisplayProgressBar("Export GameObject Graph", "exporting", 0.7f); StringBuilder exportBuilder = new StringBuilder(); exportBuilder.AppendLine("graph"); exportBuilder.AppendLine("["); foreach (var objName in objectNames) { if (referenceInfoList.Any(item => item.fromObject == objName || item.targetObject == objName) == false) { continue; } var isPrefab = PrefabUtility.GetPrefabObject(objName) == null; exportBuilder.AppendLine(" node"); exportBuilder.AppendLine(" ["); exportBuilder.AppendLine(" id "+ objName.GetHashCode()); exportBuilder.AppendLine(" label \""+ objName.name + "\""); exportBuilder.AppendLine(" graphics"); exportBuilder.AppendLine(" ["); if (isPrefab) { exportBuilder.AppendLine(" fill \"#FFFF99\""); } exportBuilder.AppendLine(" w "+ objName.name.Length * 10); exportBuilder.AppendLine(" ]"); exportBuilder.AppendLine(" ]"); } foreach (var referenceInfo in referenceInfoList) { exportBuilder.AppendLine(" edge"); exportBuilder.AppendLine(" ["); exportBuilder.AppendLine(" target "+ referenceInfo.fromObject.GetHashCode()); exportBuilder.AppendLine(" source "+ referenceInfo.targetObject.GetHashCode()); exportBuilder.AppendLine(" ]"); } exportBuilder.AppendLine("]"); EditorUtility.DisplayProgressBar("Export GameObject Graph", "done", 0.7f); System.IO.File.WriteAllText(System.DateTime.Now.ToFileTime() + ".gml", exportBuilder.ToString()); }finally{ EditorUtility.ClearProgressBar(); } }