// Try Text first, then TextMesh, then child named "Text". Else error. // Return true if text component was found. public static string GetText(GameObject textOwner, string childName = "Text") { TextMeshPro tmp = textOwner.GetComponent <TextMeshPro>(); if (tmp != null) { return(tmp.text); } TextMeshProUGUI tmpUI = textOwner.GetComponent <TextMeshProUGUI>(); if (tmpUI != null) { return(tmpUI.text); } Text textComponent = textOwner.GetComponent <Text>(); if (textComponent != null) { return(textComponent.text); } TextMesh mesh = textOwner.GetComponent <TextMesh>(); if (mesh != null) { return(mesh.text); } GameObject child = SceneNodeView.GetChild(textOwner, childName); if (child != null) { return(GetText(child, childName)); } throw new System.InvalidOperationException( "Expected to set Text or TextMesh component on " + textOwner); }
// Try Text first, then TextMesh, then child named "Text". Else error. // Return true if text component was found. public static bool SetText(GameObject textOwner, string text, string childName = "Text") { Text textComponent = textOwner.GetComponent <Text>(); if (textComponent != null) { textComponent.text = text; return(true); } TextMesh mesh = textOwner.GetComponent <TextMesh>(); if (mesh != null) { mesh.text = text; return(true); } GameObject child = SceneNodeView.GetChild(textOwner, childName); if (child != null) { return(SetText(child, text, childName)); } throw new System.InvalidOperationException( "Expected to set Text or TextMesh component on " + textOwner); }
// namePattern: Substitute {0} with an index between 0 and to countMax - 1. public static List <GameObject> GetChildrenByPattern(GameObject parent, string namePattern, int countMax) { List <GameObject> children = new List <GameObject>(); for (int i = 0; i < countMax; i++) { string name = namePattern.Replace("{0}", i.ToString()); GameObject child = SceneNodeView.GetChild(parent, name); children.Add(child); } return(children); }