コード例 #1
0
        /// <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);
        }