/// <summary> /// 由数据获取对应元素的实例化预设 /// </summary> /// <param name="data"></param> /// <param name="parent"></param> /// <returns></returns> public static UIElement GetInstanceElementByData(UIElementData data, Transform parent = null) { if (data == null) { Debug.LogError("Data为null"); return(null); } if (bindingDict.ContainsKey(data.GetType())) { var bindingInfo = bindingDict[data.GetType()]; if (!string.IsNullOrEmpty(bindingInfo.prefabPath)) { var source = data.GetUIPrefabSource(); var clone = GameObject.Instantiate <UIElement>(source); if (parent != null) { clone.transform.SetParent(parent); } clone.Data = data; clone.transform.localPosition = Vector3.zero; clone.transform.localRotation = Quaternion.identity; clone.transform.localScale = Vector3.one; return(clone); } } return(null); }