示例#1
0
        public static Vector2 UF_ReadVector2(string chunk, int startIdx)
        {
            string strVal = UF_ReadString(chunk, startIdx);
            float  x, y;

            string[] array = GHelper.UF_SplitStringWithCount(strVal, 2, ',');
            float.TryParse(array [0], out x);
            float.TryParse(array [1], out y);
            return(new Vector2(x, y));
        }
示例#2
0
        public static Vector4 UF_ReadVector4(string chunk, int startIdx)
        {
            string strVal = UF_ReadString(chunk, startIdx);
            float  x, y, z, w;

            string[] array = GHelper.UF_SplitStringWithCount(strVal, 4, ',');
            float.TryParse(array [0], out x);
            float.TryParse(array [1], out y);
            float.TryParse(array [2], out z);
            float.TryParse(array [3], out w);
            return(new Vector4(x, y, z, w));
        }
示例#3
0
        private UpgradeFileInfo UF_CreateUpgradeFileInfo(string chunk)
        {
            UpgradeFileInfo ret = new UpgradeFileInfo();

            string[] value = GHelper.UF_SplitStringWithCount(chunk, 3);
            ret.version = value [0].Substring(value [0].IndexOf('-') + 1);
            ret.size    = int.Parse(value [1].Trim());
            ret.zip     = value [0].Trim() + ".zip";
            //取用CDN资源
            ret.url   = string.Format("{0}/{1}", GlobalSettings.UrlAssetsUpgrade.Trim(), ret.zip);
            ret.ucode = value [2];
            return(ret);
        }
示例#4
0
        private void UF_DrawDebugWriter()
        {
            string pwfile = PlayerPrefs.GetString("dw_p_file", "");
            string pwidpe = PlayerPrefs.GetString("dw_p_idpe", "127.0.0.1:6789");

            GUI.color = Color.white;

            try{
                GUILayout.BeginHorizontal();
                if (GUILayout.Button("Set File Writer", GUILayout.Width(120)))
                {
                    if (!string.IsNullOrEmpty(pwfile.Trim()))
                    {
                        if (!File.Exists(pwfile))
                        {
                            string abspath = Path.GetDirectoryName(pwfile);
                            if (!Directory.Exists(abspath))
                            {
                                Directory.CreateDirectory(abspath);
                            }
                        }
                        FileWriter fw = new FileWriter(pwfile);
                        Debugger.UF_GetInstance().logger.UF_AddWriter(fw);
                    }
                }
                pwfile = GUILayout.TextArea(pwfile);
                GUILayout.EndHorizontal();

                GUILayout.BeginHorizontal();
                if (GUILayout.Button("Set UDP Writer", GUILayout.Width(120)))
                {
                    if (!string.IsNullOrEmpty(pwidpe.Trim()))
                    {
                        string[]     args = GHelper.UF_SplitStringWithCount(pwidpe, 2, ':');
                        UdpNetWriter uw   = new UdpNetWriter(args[0], int.Parse(args[1]));
                        uw.UF_Write(string.Format("\n\n\n------------------Start UPD Console:[{0}]------------------\n", GTime.DateHMS));
                        Debugger.UF_GetInstance().logger.UF_AddWriter(uw);
                    }
                }
                pwidpe = GUILayout.TextField(pwidpe);
                GUILayout.EndHorizontal();
            }catch (System.Exception ex) {
                Debugger.UF_Exception(ex);
            }

            if (GUI.changed)
            {
                PlayerPrefs.SetString("dw_p_file", pwfile);
                PlayerPrefs.SetString("dw_p_idpe", pwidpe);
            }
        }
示例#5
0
        public void UF_ExecuteTweenAlpha(string valchunk)
        {
            if (string.IsNullOrEmpty(valchunk))
            {
                return;
            }
            List <string> list = ListCache <string> .Acquire();

            GHelper.UF_SplitStringWithCount(valchunk, 4, list, ';');
            float vform      = GHelper.UF_ParseFloat(list[0]);
            float vto        = GHelper.UF_ParseFloat(list[1]);
            float vduration  = GHelper.UF_ParseFloat(list[2]);
            bool  vtimescale = GHelper.UF_ParseBool(list[3]);

            UF_CrossRenderAlpha(vform, vto, vduration, vtimescale);
            ListCache <string> .Release(list);
        }
示例#6
0
        //通过Raw中载入资源信息表,获取所有资源信息
        internal static void UF_LoadAssetInfoFormAssetTable(string path)
        {
            Debugger.UF_Log("Load All AssetInfo From AssetTable");

            if (!File.Exists(path))
            {
                Debugger.UF_Warn("AssetData file not exist: " + path);
                return;
            }
            try
            {
                s_DicAssetsMap.Clear();
                s_ListAssetsMap.Clear();
                string rawPath = Path.GetDirectoryName(path);
                //为避免路径变更,先遍历RAW文件夹中所有资源名映射路径,生成资源路径映射表
                Dictionary <string, string> rawFileTable = new Dictionary <string, string>();
                GHelper.UF_ForeachFloder(rawPath, (e) => {
                    string name = Path.GetFileName(e);
                    if (!rawFileTable.ContainsKey(name))
                    {
                        rawFileTable.Add(name, e);
                    }
                    else
                    {
                        Debugger.UF_Error(string.Format("AssetDataBase Error -> Same raw file name[{0}]", name));
                    }
                });

                //加载assetdata文件
                var    fs       = File.Open(path, FileMode.Open, FileAccess.Read);
                byte[] bytedata = new byte[fs.Length];
                fs.Read(bytedata, 0, (int)fs.Length);
                fs.Close();
                //解密文件
                GHelper.UF_BytesKey(bytedata, GlobalSettings.ConfigEncBKey);
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream(bytedata))
                {
                    using (var sr = new StreamReader(ms))
                    {
                        string line = "";
                        while (null != (line = sr.ReadLine()))
                        {
                            var arrparams = GHelper.UF_SplitStringWithCount(line.Trim(), 3, ';');
                            var aft       = UF_WarpAssetType(arrparams[0]);
                            //alias name
                            string aliasname = arrparams[1];
                            // asset abs name
                            string absname = arrparams[2];
                            //asset real name
                            string assetname = Path.GetFileName(absname);

                            string assetpath = "";
                            if (rawFileTable.ContainsKey(aliasname))
                            {
                                //映射文件路径
                                assetpath = rawFileTable[aliasname];
                            }
                            else
                            {
                                Debugger.UF_Error(string.Format("AssetDataBase Error -> Can not find file name[{0}] in raw file table", aliasname));
                                continue;
                            }

                            var afi = new AssetFileInfo(aft, assetname, aliasname, absname, assetpath);
                            s_ListAssetsMap.Add(afi);
                            //资源文件名必须唯一,否则会导致资读取失败
                            if (!s_DicAssetsMap.ContainsKey(assetname))
                            {
                                s_DicAssetsMap.Add(afi.name, afi);
                            }
                            else
                            {
                                Debugger.UF_Error(string.Format("AssetDataBase Error -> Same Key in Asset Table! AssetName[{0}] AliasName[{1}]", assetname, aliasname));
                            }
                        }
                    }
                }
            }
            catch (System.Exception e)
            {
                Debugger.UF_Exception(e);
            }
        }