protected static Transform GetParent(string bigType, string smallType) { var uri = GetUri(bigType, smallType); Transform theParent; if (!Parents.TryGetValue(uri, out theParent)) { var bigTypeObjName = string.Format("__{0}__", bigType); var bigTypeObj = GameObject.Find(bigTypeObjName) ?? new GameObject(bigTypeObjName); GameObject.DontDestroyOnLoad(bigTypeObj); bigTypeObj.transform.SetAsFirstSibling(); theParent = new GameObject(smallType).transform; KTool.SetChild(theParent, bigTypeObj.transform); Parents[uri] = theParent; } return(theParent); }
/// <summary> /// 设置某个物件,在指定调试组下 /// </summary> /// <param name="bigType"></param> /// <param name="smallType"></param> /// <param name="obj"></param> public static void SetParent(string bigType, string smallType, GameObject obj) { var uri = GetUri(bigType, smallType); Transform theParent = GetParent(bigType, smallType); int typeCount; if (!Counts.TryGetValue(uri, out typeCount)) { Counts[uri] = 0; } typeCount = ++Counts[uri]; try { KTool.SetChild(obj, theParent.gameObject); } catch (Exception e) { Log.Error(string.Format("[SetParent]{0}->{1}->{2}", bigType, smallType, e.Message)); } theParent.gameObject.name = GetNameWithCount(smallType, typeCount); }