Exemple #1
0
    public static void BuildFileIndex()
    {
        string resPath = (ResourcePath.GetBaseURL() + UUtility.GetPlatformName() + "/").Remove(0, 7);
        ///----------------------创建文件列表-----------------------
        string newFilePath = resPath + "files.txt";

        if (File.Exists(newFilePath))
        {
            File.Delete(newFilePath);
        }

        paths.Clear(); files.Clear();
        Recursive(resPath);

        FileStream   fs = new FileStream(newFilePath, FileMode.CreateNew);
        StreamWriter sw = new StreamWriter(fs);

        for (int i = 0; i < files.Count; i++)
        {
            string file = files[i];
            string ext  = Path.GetExtension(file);
            if (file.EndsWith(".meta") || file.Contains(".DS_Store") || file.Contains(".exe"))
            {
                continue;
            }

            string md5   = LuaUtil.md5file(file);
            string value = file.Replace(resPath, string.Empty);
            sw.WriteLine(value + "|" + md5 + "|" + filesLength[i]);
        }
        sw.Close(); fs.Close();
    }
        /**
         * 移動、サイズ変更、色変更
         * 移動開始位置、終了位置、経過フレームから現在の値を計算する
         * @return true:移動中
         */
        public bool autoMoving()
        {
            if (!isMoving)
            {
                return(false);
            }

            movingFrame++;
            if (movingFrame >= movingFrameMax)
            {
                // 移動完了
                if (isMovingPos)
                {
                    setPos(dstPos);
                }
                if (isMovingSize)
                {
                    setSize(dstSize.Width, dstSize.Height);
                }

                isMoving     = false;
                isMovingPos  = false;
                isMovingSize = false;

                updateRect();
                endMoving();
            }
            else
            {
                // 移動中
                // ratio 0.0(始点) -> 1.0(終点)
                float ratio = (float)movingFrame / (float)movingFrameMax;
                switch (movingType)
                {
                case MovingType.UniformMotion:
                    break;

                case MovingType.Acceleration:
                    ratio = UUtility.toAccel(ratio);
                    break;

                case MovingType.Deceleration:
                    ratio = UUtility.toDecel(ratio);
                    break;
                }
                if (isMovingPos)
                {
                    setPos(srcPos.X + ((dstPos.X - srcPos.X) * ratio),
                           srcPos.Y + ((dstPos.Y - srcPos.Y) * ratio));
                }
                if (isMovingSize)
                {
                    setSize((int)(srcSize.Width + (dstSize.Width - srcSize.Width) * ratio),
                            (int)(srcSize.Height + (dstSize.Height - srcSize.Height) * ratio));
                }
            }
            return(true);
        }
    public static bool ConvertToBinaryXml(string path)
    {
        //if (path.StartsWith(Application.dataPath))
        {
            string saveToDir = ResourcePath.GetLocalConfigPath();

            if (!Directory.Exists(saveToDir))
            {
                Directory.CreateDirectory(saveToDir);
            }

            if (path.ToLower().EndsWith(".xml"))
            {
                try
                {
                    FileInfo        fileInfo   = new FileInfo(path);
                    string          fileName   = fileInfo.Name.Substring(0, fileInfo.Name.Length - fileInfo.Extension.Length);
                    TbXmlSerializer serializer = new TbXmlSerializer();

                    path = path.Replace(Application.dataPath, "");
                    path = "Assets/Config/" + path;
                    byte[] bytes = serializer.SerializeXmlString((AssetDatabase.LoadMainAssetAtPath(path) as TextAsset).text);

                    string topath = Path.Combine(Path.Combine("../ClientRes", UUtility.GetPlatformName() + "/config/"), "");
                    topath = topath + fileName + ".bytes";
                    File.WriteAllBytes(topath, bytes);

                    return(true);
                }
                catch (System.Exception exception)
                {
                    Debug.LogError("Error:" + path);
                    //Debug.LogError(exception.Message);
                    //Debug.LogError(exception.StackTrace);
                    //Debug.LogError("");
                }
            }
            else
            {
                if (!path.ToLower().EndsWith(".meta"))
                {
                    FileInfo fileInfo = new FileInfo(path);
                    File.Copy(path, saveToDir + "/" + fileInfo.Name, true);
                    return(true);
                }
            }
        }
        return(false);
    }
Exemple #4
0
        /**
         * ヘッダ部分からファイルのエンコードタイプを取得する
         *
         * @input inputFilePath:  LogViewのファイルパス
         * @output エンコードの種類
         */
        public static Encoding GetEncodingText(string inputFilePath)
        {
            bool     isHeader = false;
            int      count    = 0;
            Encoding encoding = Encoding.UTF8;

            using (StreamReader sr = new StreamReader(inputFilePath))
            {
                // ヘッダ部分を読み込む <head>~</head>
                while (sr.Peek() >= 0)
                {
                    // ファイルを 1 行ずつ読み込む
                    string line = sr.ReadLine().Trim();

                    // <head>の行が見つかるまではスキップ
                    if (isHeader == false)
                    {
                        if (line.Equals("<head>"))
                        {
                            isHeader = true;
                        }
                    }
                    else
                    {
                        if (line.Equals("</head>"))
                        {
                            break;
                        }
                        // エンコード種別
                        if (line.Contains("encoding:"))
                        {
                            string[] splitted = line.Split(':');
                            if (splitted.Length >= 2)
                            {
                                encoding = UUtility.GetEncodingFromStr(splitted[1].ToLower());
                            }
                        }
                    }
                    count++;
                    if (count > 100)
                    {
                        // ファイルの先頭部分に見つからなかったので打ち切り
                        break;
                    }
                }
                return(encoding);
            }
        }  // GetEncoding()
Exemple #5
0
        /**
         * バイナリログのヘッダ部分を取得
         * @input fs : ファイルオブジェクト
         *
         */
        private void ReadLogHeadBin(UFileStream fs)
        {
            // 文字コードを取得
            string encStr = fs.GetSizeString();

            this.encoding   = UUtility.GetEncodingFromStr(encStr);
            fs.EncodingType = encoding;

            // ログID情報
            logIDs = ReadLogIDsBin(fs);

            // レーン情報
            lanes = ReadLogLanesBin(fs);

            // アイコン画像
            images = ReadLogImagesBin(fs);

            // ログIDの画像を設定する
            foreach (LogID logId in logIDs)
            {
                logId.Image = images.GetImage(logId.ImageName);
            }
        }