Пример #1
0
        //ロード処理(暗号化済みファイルから)
        void LoadWWWCriptFile(WWW www)
        {
            byte[] readBytes = www.bytes;
            switch (FileType)
            {
            case AssetFileType.Text:                                    //テキスト
                text = System.Text.Encoding.UTF8.GetString(fileIO.Decode(readBytes));
                break;

            case AssetFileType.Bytes:                                   //バイナリ
                bytes = fileIO.Decode(readBytes);
                break;

            case AssetFileType.Texture:                         //テクスチャ
                fileIO.DecodeNoCompress(readBytes);             //圧縮なしでデコード
                //サイズとTextureFormatはLoadImage後無視される。ミップマップの反映のみ
                texture = new Texture2D(1, 1, TextureFormat.ARGB32, FileInfo.IsTextureMipmap);
                if (texture.LoadImage(readBytes))
                {
                    texture.name     = FileInfo.FilePath;
                    texture.wrapMode = TextureWrapMode.Clamp;
                    //ReadWriteフラグの設定
                    if (RowData != null && RowData.ParseCellOptional("ReadWrite", false))
                    {
                        texture.Apply(false, false);
                    }
                    else
                    {
                        texture.Apply(false, true);
                    }
                }
                else
                {
                    Debug.LogError(" Filed load image " + FileInfo.FilePath);
                }

                break;

            case AssetFileType.Sound:                                   //サウンド
                fileIO.DecodeNoCompress(readBytes);                     //圧縮なしでデコード
                sound      = FileIOManagerBase.ReadAudioFromMem(this.FileName, readBytes);
                sound.name = FileInfo.FilePath;
                break;

            case AssetFileType.Csv:                                     //CSV
                csv = new StringGrid(this.FileName, FileInfo.IsTsv ? CsvType.Tsv : CsvType.Csv, System.Text.Encoding.UTF8.GetString(fileIO.Decode(readBytes)));
                break;

            case AssetFileType.UnityObject:
                Debug.LogError("AssetBundle not support load from utage cript cache file");
                break;

            default:
                break;
            }
        }
Пример #2
0
        //ロード処理(通常)
        void LoadWWWNormal(WWW www)
        {
            if (FileInfo.IsStreamingType && FileInfo.IsWriteNewCache)
            {
                //ストリーミング再生かつ、キャッシュに書き込む必要がある場合は、まだリソースを読まない
                //書き込み後の再読み込みを発行する
                isLoadRetry = true;
            }
            else
            {
                switch (FileType)
                {
                case AssetFileType.Text:                                        //テキスト
                    text = www.text;
                    break;

                case AssetFileType.Bytes:                                       //バイナリ
                    bytes = www.bytes;
                    break;

                case AssetFileType.Texture:                                     //テクスチャ
                    if (FileInfo.IsTextureMipmap)
                    {
                        //サイズとTextureFormatはLoadImage後無視される。ミップマップの反映のみ
                        texture = new Texture2D(1, 1, TextureFormat.ARGB32, FileInfo.IsTextureMipmap);
                        texture.LoadImage(www.bytes);

                        //ReadWriteフラグの設定
                        if (RowData != null && RowData.ParseCellOptional("ReadWrite", false))
                        {
                            texture.Apply(false, false);
                        }
                        else
                        {
                            texture.Apply(false, true);
                        }
                    }
                    else
                    {
                        texture = www.texture;
                    }
                    texture.name     = FileInfo.FilePath;
                    texture.wrapMode = TextureWrapMode.Clamp;
                    break;

                case AssetFileType.Sound:                                                       //サウンド
                    if (sound != null)
                    {
                        //ロードできていないストリーミング用のサウンドを消す
                        UnityEngine.Object.Destroy(sound);
                    }
                    //非ストリーミングでオンメモリでロード
                    sound      = www.GetAudioClip(FileInfo.IsAudio3D, false, FileInfo.AudioType);
                    sound.name = FileInfo.FilePath;
                    if (!WrapperUnityVersion.IsReadyPlayAudioClip(sound))
                    {
                        Debug.LogError(sound.name + ":" + sound.loadState);
                    }
                    break;

                case AssetFileType.Csv:                                         //CSV
                    csv = new StringGrid(this.FileName, FileInfo.IsTsv ? CsvType.Tsv : CsvType.Csv, www.text);
                    break;

                case AssetFileType.UnityObject:                         //UnityObject
                    Debug.LogError("AssetBundle not support load from normal WWW");
                    break;

                default:
                    break;
                }
            }
        }