public static PrefabBindingInfo LoadPrefabBindingInfo(this CsvTable table)
        {
            if (table == null)
            {
                return(null);
            }

            if (table.Columns.Count < 4)
            {
                Debug.LogErrorFormat("表列数和需求不一致,请目标表{0}检查是否为绑定信息!", table.name);
                return(null);
            }

            var prefabBindingInfo = new PrefabBindingInfo(table.name);
            var count             = table.Rows.Count;

            for (int i = 0; i < count; i++)
            {
                var row        = table.Rows[i];
                var scriptItem = new PrefabBindingInfo.ScriptItem();
                scriptItem.path = row[0];
                var assemble = Assembly.Load(row[1]);
                if (assemble != null)
                {
                    scriptItem.type = assemble.GetType(row[2]);
                }
                scriptItem.resources = ParamAnalysisTool.ToDictionary(row[3]);
                prefabBindingInfo.scriptItems.Add(scriptItem);
            }

            return(prefabBindingInfo);
        }
Beispiel #2
0
        public override string GetStringValue()
        {
            var highlightedPath = m_highlight_icon.text;
            var pressedPath     = m_pressed_icon.text;
            var disabledPath    = m_disabled_icon.text;
            var group           = ParamAnalysisTool.ArrayToGroup(highlightedPath, pressedPath, disabledPath);

            return(group);
        }
Beispiel #3
0
        public override void SetValue(string value)
        {
            var colorblock = ParamAnalysisTool.StringToColorBlock(value);

            m_normal_icon.color    = colorblock.normalColor;
            m_highlight_icon.color = colorblock.highlightedColor;
            m_pressed_icon.color   = colorblock.pressedColor;
            m_disabled_icon.color  = colorblock.disabledColor;
        }
Beispiel #4
0
        public override void SetValue(string value)
        {
            var rect = ParamAnalysisTool.StringToRect(value);

            input_x.text = rect.x.ToString();
            input_y.text = rect.y.ToString();
            input_w.text = rect.width.ToString();
            input_h.text = rect.height.ToString();
        }
        /// <summary>
        /// 按类型得到字符串值
        /// </summary>
        /// <param name="type"></param>
        /// <param name="root"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string GetStringValue(Type type, Transform root, object value)
        {
            if (typeof(IConvertible).IsAssignableFrom(type))
            {
                return(value.ToString());
            }
            //资源型引用类型,记录guid
            else if (type.IsSubclassOf(typeof(UnityEngine.Object)))
            {
                UnityEngine.Object uObj = (UnityEngine.Object)value;
                string             guid;
                string             rPath;

                if (TypeUtil.IsAssetsType(type))//资源类型
                {
                    if (TryGetGUID(uObj, out guid))
                    {
                        return(guid);
                    }
                }
                else if (type == typeof(GameObject))//相对引用
                {
                    if (TryGetGUID(uObj, out guid))
                    {
                        return(guid);
                    }
                    else if (TryGetChildPath(root, ((GameObject)uObj).transform, out rPath))
                    {
                        return(rPath);
                    }
                }
                else if (type.IsSubclassOf(typeof(Component)))//组件类型
                {
                    if (TryGetGUID(uObj, out guid))
                    {
                        return(guid);
                    }
                    else if (TryGetChildPath(root, ((Component)uObj).transform, out rPath))
                    {
                        return(rPath);
                    }
                }
            }
            else if (TypeUtil.IsInnerStructure(type))
            {
                var strvalue = ParamAnalysisTool.InnerStructObjectToString(type, value);
                if (!string.IsNullOrEmpty(strvalue))
                {
                    return(strvalue);
                }
            }

            Debug.LogWarning("未能成功解析属性信息:" + type.Name);
            return(null);
        }
Beispiel #6
0
        public override string GetStringValue()
        {
            var normalColor      = ColorUtility.ToHtmlStringRGBA(m_normal_icon.color);
            var highlightedColor = ColorUtility.ToHtmlStringRGBA(m_highlight_icon.color);
            var pressedColor     = ColorUtility.ToHtmlStringRGBA(m_pressed_icon.color);
            var disabledColor    = ColorUtility.ToHtmlStringRGBA(m_disabled_icon.color);
            var group            = ParamAnalysisTool.ArrayToGroup(normalColor, highlightedColor, pressedColor, disabledColor);

            Debug.Log(group);
            return(group);
        }
        public override void SetValue(string value)
        {
            var values = ParamAnalysisTool.GroupToArray(value);

            for (int i = 0; i < values.Length; i++)
            {
                if (fieldValues.Length > i)
                {
                    fieldValues[i] = values[i];
                }
            }
        }
        public static CsvTable CreateTable(this PrefabBindingInfo bindingInfo)
        {
            var table = new CsvTable(bindingInfo.name);

            table.Columns = new List <string>(titles);
            for (int i = 0; i < bindingInfo.scriptItems.Count; i++)
            {
                var scriptItem = bindingInfo.scriptItems[i];
                var infos      = new string[titles.Length];
                infos[0] = scriptItem.path;
                infos[1] = scriptItem.type.Assembly.FullName;
                infos[2] = scriptItem.type.FullName;
                infos[3] = ParamAnalysisTool.FromDictionary(scriptItem.resources);
                table.Rows.Add(infos);
            }
            return(table);
        }
Beispiel #9
0
        public static void AnalysisLayerInfo(PsdLayer layer, LayerInfo layerInfo)
        {
            ResourceDic dic        = new ResourceDic();
            Rect        parentRect = layerInfo.rect;
            Rect        innerRect  = GetSubRectFromLayer(layer, parentRect);

            dic.Add("name", layer.Name);
            switch (layer.LayerType)
            {
            case LayerType.Normal:
            case LayerType.Color:
                layerInfo.sub_images.Add(dic);
                dic.Add("sprite", layer.Name + ".png");
                dic.Add("rect", ParamAnalysisTool.RectToString(innerRect));
                CreatePNGFile(layer);
                break;

            case LayerType.Text:
                layerInfo.sub_texts.Add(dic);
                var textInfo = layer.Records.TextInfo;
                var color    = new Color(textInfo.color[0], textInfo.color[1], textInfo.color[2], textInfo.color[3]);
                dic.Add("rect", ParamAnalysisTool.RectToString(GetMarginRect(innerRect, 1.2f)));
                dic.Add("color", ParamAnalysisTool.ColorToString(color));
                dic.Add("text", textInfo.text);
                if (!string.IsNullOrEmpty(textInfo.fontName))
                {
                    dic.Add("font", textInfo.fontName);
                }
                dic.Add("fontSize", textInfo.fontSize.ToString());
                break;

            case LayerType.Complex:
                Debug.Log("目标层解析能正常,请修改为智能对象! layer --> " + layer.Name);
                layerInfo.sub_images.Add(dic);
                dic.Add("sprite", layer.Name + ".png");
                dic.Add("rect", ParamAnalysisTool.RectToString(innerRect));
                CreatePNGFile(layer);
                break;

            default:
                break;
            }
        }
Beispiel #10
0
        public override void SetValue(string value)
        {
            var array = ParamAnalysisTool.GroupToArray(value);

            if (array != null)
            {
                if (array.Length > 0)
                {
                    m_highlight_icon.text = array[0];
                }
                if (array.Length > 1)
                {
                    m_pressed_icon.text = array[1];
                }
                if (array.Length > 2)
                {
                    m_disabled_icon.text = array[2];
                }
            }
        }
Beispiel #11
0
 protected override void OnValueChanged()
 {
     base.OnValueChanged();
     m_icon.color = ParamAnalysisTool.StringToColor(m_input.text);
 }
        /// <summary>
        /// 按类型解析值,没有Transform创建之
        /// </summary>
        /// <param name="type"></param>
        /// <param name="value"></param>
        /// <param name="root"></param>
        /// <param name="dic"></param>
        /// <returns></returns>
        private static object StringToObjectRuntime(Type type, string value, Transform root, Dictionary <string, Transform> dic)
        {
            //资源型引用类型,记录guid
            if (type.IsSubclassOf(typeof(UnityEngine.Object)))
            {
                UnityEngine.Object obj = null;
                if (TypeUtil.IsAssetsType(type))//资源类型
                {
                    if (TryLoadAssetFromGUID(type, value, out obj))
                    {
                        return(obj);
                    }
                    else
                    {
                        Debug.LogWarningFormat("参数{0}解析失败:guid找不到", value);
                    }
                }
                else
                {
                    if (type == typeof(GameObject))
                    {
                        if (TryLoadAssetFromGUID(type, value, out obj))
                        {
                            return(obj);
                        }
                        else
                        {
                            var trans = CompleteTransform(root, value, dic);
                            if (trans != null)
                            {
                                return(trans.gameObject);
                            }
                        }
                    }
                    else if (type.IsSubclassOf(typeof(Component)))
                    {
                        if (TryLoadAssetFromGUID(type, value, out obj))
                        {
                            return(obj);
                        }
                        else
                        {
                            var trans = CompleteTransform(root, value, dic);
                            if (trans != null)
                            {
                                return(MustComponent(trans.gameObject, type));
                            }
                        }
                    }
                    else
                    {
                        Debug.LogWarningFormat("参数{0}解析失败类型未判断:{1}", value, type);
                    }
                }
            }
            else if (TypeUtil.IsInnerStructure(type))
            {
                var objValue = ParamAnalysisTool.InnerStructFromString(type, value);
                if (objValue == null)
                {
                    Debug.LogWarningFormat("参数{0}解析失败,类型:{1}", value, type);
                }
                return(objValue);
            }
            else if (typeof(IConvertible).IsAssignableFrom(type))
            {
                return(ParamAnalysisTool.IconventibleFromString(type, value));
            }

            Debug.LogWarningFormat("参数{0}解析失败,类型:{1}", value, type);
            return(null);
        }
        /// <summary>
        /// 按类型解析值
        /// </summary>
        /// <param name="type"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        private static object StringToObject(Type type, string value, Dictionary <string, Transform> dic)
        {
            //资源型引用类型,记录guid
            if (type.IsSubclassOf(typeof(UnityEngine.Object)))
            {
                UnityEngine.Object obj = null;
                if (TypeUtil.IsAssetsType(type))//资源类型
                {
                    if (TryLoadAssetFromGUID(type, value, out obj))
                    {
                        return(obj);
                    }
                    else
                    {
                        Debug.LogWarningFormat("参数{0}解析失败:guid找不到", value);
                    }
                }
                else
                {
                    if (type == typeof(GameObject))
                    {
                        if (TryLoadAssetFromGUID(type, value, out obj))
                        {
                            return(obj);
                        }
                        else if (dic.ContainsKey(value))
                        {
                            return(dic[value].gameObject);
                        }
                        else
                        {
                            Debug.LogWarningFormat("参数{0}解析失败,未找到GameOject:{1}", value, type);
                        }
                    }
                    else if (type.IsSubclassOf(typeof(Component)))
                    {
                        if (TryLoadAssetFromGUID(type, value, out obj))
                        {
                            return(obj);
                        }
                        else if (TryLoadComponentFromPath(type, value, dic, out obj))
                        {
                            return(obj);
                        }
                        else
                        {
                            Debug.LogWarningFormat("参数{0}解析失败未找到组件:{1}", value, type);
                        }
                    }
                    else
                    {
                        Debug.LogWarningFormat("参数{0}解析失败类型未判断:{1}", value, type);
                    }
                }
            }
            else if (TypeUtil.IsInnerStructure(type))
            {
                var objValue = ParamAnalysisTool.InnerStructFromString(type, value);
                if (objValue == null)
                {
                    Debug.LogWarningFormat("参数{0}解析失败,类型:{1}", value, type);
                }
                return(objValue);
            }
            else if (typeof(IConvertible).IsAssignableFrom(type))
            {
                return(ParamAnalysisTool.IconventibleFromString(type, value));
            }

            Debug.LogWarningFormat("参数{0}解析失败,类型:{1}", value, type);
            return(null);
        }
Beispiel #14
0
 public override string GetStringValue()
 {
     return(ParamAnalysisTool.ArrayToRange(input_x.text, input_y.text, input_w.text, input_h.text));
 }
 public override string GetStringValue()
 {
     return(ParamAnalysisTool.ArrayToGroup(fieldValues));
 }