public static string UpwardsDebugTraceRecursive(IReference reference, int depth, string value = "") { value += depth + ": " + reference.GetTypeName() + ": " + reference.GetName() + "\n"; if (reference.GetParentReference() != null) { value = UpwardsDebugTraceRecursive(reference.GetParentReference(), --depth, value); } return(value); }
void SetBackButton(IReference reference) { if (reference == null) { backButton.interactable = false; } else { var parentReference = reference.GetParentReference(); if (parentReference == null) { backButton.interactable = false; } else { backButton.interactable = true; backButton.onClick.RemoveAllListeners(); if (parentReference is GameObjectReference) { backButton.onClick.AddListener(() => InstantiateComponents(parentReference as GameObjectReference)); } else if (parentReference is ComponentReference) { backButton.onClick.AddListener(() => InstantiateMemberCollection(parentReference as ComponentReference)); } else { backButton.onClick.AddListener(() => InstantiateMemberCollection(parentReference as MemberReference)); } } } }
static string GetPathString(IReference reference, string path = null) { if (reference == null) { return("null"); } if (path == null) { path = reference.GetName(); } else { path = reference.GetName() + " / " + path; } if (reference.GetParentReference() != null) { path = GetPathString(reference.GetParentReference(), path); } return(path); }