コード例 #1
0
 //ファイルのコンバート
 void Convert()
 {
     try
     {
         AssetFileManager assetFileManager = FindObjectOfType <AssetFileManager>();
         if (assetFileManager == null)
         {
             Debug.LogError("FileManager is not found in current scene");
             return;
         }
         //ファイルの入出力に使う
         FileIOManager fileIOManager = assetFileManager.FileIOManager;
         switch (outputType)
         {
         case OutputType.Default:
         default:
             //アセットバンドルをビルド
             BuildAssetBundles(fileIOManager);
             break;
         }
         AssetDatabase.Refresh();
     }
     catch (System.Exception e)
     {
         Debug.LogException(e);
     }
 }
コード例 #2
0
 /// <summary>
 /// 書き込み
 /// </summary>
 public virtual void Write()
 {
     if (!DontUseSystemSaveData && isInit)
     {
         FileIOManager.WriteBinaryEncode(Path, WriteBinary);
     }
 }
コード例 #3
0
 /// <summary>
 /// 書き込み
 /// </summary>
 public void Write()
 {
     if (!DontUseSystemSaveData)
     {
         FileIOManager.WriteBinaryEncode(Path, WriteBinary);
     }
 }
コード例 #4
0
 /// <summary>
 /// 読み込み
 /// </summary>
 public void Read()
 {
     if (!FileIOManager.ReadBinaryDecode(Path, ReadBinary))
     {
         //デフォルト値で初期化
         InitDefault();
     }
 }
コード例 #5
0
ファイル: AdvSaveManager.cs プロジェクト: TUmedu/Utage-GVR
 /// <summary>
 /// セーブデータを削除
 /// </summary>
 /// <param name="saveData">削除するセーブデータ</param>
 public void DeleteSaveData(AdvSaveData saveData)
 {
     if (FileIOManager.Exists(saveData.Path))
     {
         FileIOManager.Delete(saveData.Path);
     }
     saveData.Clear();
 }
コード例 #6
0
ファイル: AdvSaveManager.cs プロジェクト: TUmedu/Utage-GVR
 //ゲーム終了時
 void OnApplicationQuit()
 {
     if (IsAutoSave && AutoSaveData != null)
     {
         if (CurrentAutoSaveData.IsSaved)
         {
             FileIOManager.WriteBinaryEncode(CurrentAutoSaveData.Path, CurrentAutoSaveData.Write);
         }
     }
 }
コード例 #7
0
 protected virtual void AutoSave()
 {
     if (IsAutoSave && CurrentAutoSaveData != null)
     {
         if (CurrentAutoSaveData.IsSaved)
         {
             FileIOManager.WriteBinaryEncode(CurrentAutoSaveData.Path, CurrentAutoSaveData.Write);
         }
     }
 }
コード例 #8
0
        //コンバートファイルリストのファイルを書き込む
        void Write()
        {
            byte[] bytes     = BinaryUtil.BinaryWrite(ConvertFileList.Write);
            bool   isEncoded = Settings.FindSettingFromPath(ConvertFileList.FilePath).EncodeType == AssetFileEncodeType.AlreadyEncoded;

            if (isEncoded)
            {
                bytes = FileIOManager.Encode(bytes);
            }
            File.WriteAllBytes(ConvertFileList.FilePath, bytes);
        }
コード例 #9
0
        //アセットバンドルのビルド
        void BuildAssetBundles(FileIOManager fileIOManager)
        {
            if (buildMode == AssetBundleBuildMode.None)
            {
                return;
            }

            //アセットバンドルをプラットフォーム別にビルド
            List <BuildTarget> buildTargets = new List <BuildTarget>();

            switch (buildMode)
            {
            case AssetBundleBuildMode.OnlyEditor:                    //エディタ上のみ
                buildTargets.Add(AssetBundleHelper.BuildTargetFlagToBuildTarget(AssetBundleHelper.EditorAssetBundleTarget()));
                break;

            case AssetBundleBuildMode.AllPlatform:                    //全プラットフォーム
            {
                buildTargets = AssetBundleHelper.BuildTargetFlagsToBuildTargetList(buildTargetFlags);
            }
            break;

            default:
                break;
            }

            MainAssetInfo        inputDirAsset = new MainAssetInfo(this.ResourcesDirectory);
            List <MainAssetInfo> assets        = GetAssetBudleList(inputDirAsset);

            RenameAssetBundles(inputDirAsset.AssetPath, assets);
            AssetBundleBuild[] builds = ToAssetBundleBuilds(assets);
            if (builds.Length <= 0)
            {
                return;
            }


            foreach (BuildTarget buildTarget in buildTargets)
            {
                string outputPath = FilePathUtil.Combine(OutputPath, AssetBundleHelper.BuildTargetToBuildTargetFlag(buildTarget).ToString());
                //出力先のディレクトリを作成
                if (!Directory.Exists(outputPath))
                {
                    Directory.CreateDirectory(outputPath);
                }
                //アセットバンドルを作成
                AssetBundleManifest manifest = BuildPipeline.BuildAssetBundles(outputPath, builds, buildOptions, buildTarget);
                Debug.Log("BuildAssetBundles to " + buildTarget.ToString());
                if (isOutputLog)
                {
                    WriteManifestLog(manifest, outputPath);
                }
            }
        }
コード例 #10
0
ファイル: AdvSaveManager.cs プロジェクト: TUmedu/Utage-GVR
 /// <summary>
 /// セーブデータを読み込み
 /// </summary>
 /// <param name="saveData">読み込むセーブデータ</param>
 /// <returns>読み込めたかどうか</returns>
 bool ReadSaveData(AdvSaveData saveData)
 {
     if (FileIOManager.Exists(saveData.Path))
     {
         return(FileIOManager.ReadBinaryDecode(saveData.Path, saveData.Read));
     }
     else
     {
         return(false);
     }
 }
コード例 #11
0
ファイル: AdvSaveManager.cs プロジェクト: TUmedu/Utage-GVR
        /// <summary>
        /// セーブデータを書き込み
        /// その場の状態を書き込まず、各ページ冒頭のオートセーブデータを利用する
        /// </summary>
        /// <param name="engine">ADVエンジン</param>
        /// <param name="saveData">書き込むセーブデータ</param>
        public void WriteSaveData(AdvEngine engine, AdvSaveData saveData)
        {
            if (!CurrentAutoSaveData.IsSaved)
            {
                Debug.LogError("SaveData is Disabled");
                return;
            }

            //セーブ
            saveData.SaveGameData(CurrentAutoSaveData, engine, UtageToolKit.CreateResizeTexture(CaptureTexture, CaptureWidth, CaptureHeight));
            FileIOManager.WriteBinaryEncode(saveData.Path, saveData.Write);
        }
コード例 #12
0
        //コンバートファイルリストのファイルを読み込む
        void Read()
        {
            //出力先のアセットバンドル情報を読み込む
            string convertFileListPath = FilePathUtil.Combine(OutputResourcesPath, Path.GetFileNameWithoutExtension(OutputResourcesPath) + ExtensionUtil.ConvertFileList);

            convertFileListPath += ExtensionUtil.UtageFile;
            ConvertFileList      = new ConvertFileList(convertFileListPath);
            //ファイルから読み込む
            if (File.Exists(convertFileListPath))
            {
                byte[] bytes = File.ReadAllBytes(convertFileListPath);
                bytes = FileIOManager.Decode(bytes);
                BinaryUtil.BinaryRead(bytes, ConvertFileList.Read);
            }
        }
コード例 #13
0
ファイル: AdvSaveManager.cs プロジェクト: TUmedu/Utage-GVR
        /// <summary>
        /// 初期化
        /// </summary>
        public void Init()
        {
            //セーブデータのディレクトリがなければ作成
            FileIOManager.CreateDirectory(ToDirPath());

            //オートセーブデータ。読み込み用と書き込み用
            autoSaveData        = new AdvSaveData(AdvSaveData.SaveDataType.Auto, ToFilePath("Auto"));;
            currentAutoSaveData = new AdvSaveData(AdvSaveData.SaveDataType.Auto, ToFilePath("Auto"));;

            quickSaveData = new AdvSaveData(AdvSaveData.SaveDataType.Quick, ToFilePath("Quick"));;

            saveDataList = new List <AdvSaveData>();
            for (int i = 0; i < SaveMax; i++)
            {
                AdvSaveData data = new AdvSaveData(AdvSaveData.SaveDataType.Default, ToFilePath("" + (i + 1)));
                saveDataList.Add(data);
            }
        }
コード例 #14
0
        protected virtual bool TryReadSaveData()
        {
            if (DontUseSystemSaveData)
            {
                return(false);
            }

            string saveDir = FilePathUtil.Combine(FileIOManager.SdkPersistentDataPath, DirectoryName);

            //セーブデータのディレクトリがなければ作成
            FileIOManager.CreateDirectory(saveDir);

            Path = FilePathUtil.Combine(saveDir, FileName);
            if (!FileIOManager.Exists(Path))
            {
                return(false);
            }

            return(FileIOManager.ReadBinaryDecode(Path, ReadBinary));
        }
コード例 #15
0
        /// <summary>
        /// 初期化
        /// </summary>
        public void Init(AdvConfig config)
        {
            this.config = config;
            string saveDir = FileIOManager.SdkPersistentDataPath + DirectoryName + "/";

            //セーブデータのディレクトリがなければ作成
            FileIOManager.CreateDirectory(saveDir);

            path   = saveDir + FileName;
            isInit = true;
            if (!FileIOManager.Exists(Path))
            {
                //デフォルト値で初期化
                InitDefault();
            }
            else
            {
                Read();
            }
        }
コード例 #16
0
        //指定のパスのファイルをメモリからバージョンアップ。
        //ファイルとメモリが同じだったら、書き込まずfalseを返す。
        bool TryConvertFileFromMem(string outputFileName, byte[] buffer)
        {
            AssetFileSetting setting = Settings.FindSettingFromPath(outputFileName);

            byte[] oldBytes = File.Exists(outputFileName) ? File.ReadAllBytes(outputFileName) : new byte[0];
            if (setting.EncodeType == AssetFileEncodeType.AlreadyEncoded)
            {
                //エンコードが必要なタイプはエンコードする
                switch (setting.FileType)
                {
                case AssetFileType.Sound:
                    Debug.LogError("Sound File not support to encode file");
                    return(false);

                case AssetFileType.Texture:
                    buffer = FileIOManager.EncodeNoCompress(buffer);
                    break;

                default:
                    buffer = FileIOManager.Encode(buffer);
                    break;
                }
            }
            if (IsEqualBytes(oldBytes, buffer))
            {
                return(false);
            }
            else
            {
                //ディレクトリがなければ作る
                string dir = Path.GetDirectoryName(outputFileName);
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }
                File.WriteAllBytes(outputFileName, buffer);
                return(true);
            }
        }
コード例 #17
0
        //コンバートファイルリストのファイルを読み込む
        void Read()
        {
            //出力先のアセットバンドル情報を読み込む
            string convertFileListPath = FilePathUtil.Combine(OutputResourcesPath, Path.GetFileNameWithoutExtension(OutputResourcesPath) + ExtensionUtil.ConvertFileList);
            bool   isEncoded           = Settings.FindSettingFromPath(convertFileListPath).EncodeType == AssetFileEncodeType.AlreadyEncoded;

            if (isEncoded)
            {
                convertFileListPath += ExtensionUtil.UtageFile;
            }

            ConvertFileList = new ConvertFileList(convertFileListPath);
            //ファイルから読み込む
            if (File.Exists(convertFileListPath))
            {
                byte[] bytes = File.ReadAllBytes(convertFileListPath);
                if (isEncoded)
                {
                    bytes = FileIOManager.Decode(bytes);
                }
                BinaryUtil.BinaryRead(bytes, ConvertFileList.Read);
            }
        }
コード例 #18
0
        /// <summary>
        /// 初期化
        /// </summary>
        public void Init(AdvEngine engine)
        {
            this.engine = engine;
            string saveDir = FileIOManager.SdkPersistentDataPath + DirectoryName + "/";

            //セーブデータのディレクトリがなければ作成
            FileIOManager.CreateDirectory(saveDir);

            path   = saveDir + FileName;
            isInit = true;
            if (DontUseSystemSaveData || !FileIOManager.Exists(Path))
            {
                //デフォルト値で初期化
                InitDefault();
            }
            else
            {
                if (!FileIOManager.ReadBinaryDecode(Path, ReadBinary))
                {
                    //デフォルト値で初期化
                    InitDefault();
                }
            }
        }
コード例 #19
0
 public AdvFileListConverter(string outPutDirectoryPath, FileIOManager fileIOManager, AssetFileManagerSettings settings)
 {
     OutputResourcesPath = outPutDirectoryPath;
     FileIOManager       = fileIOManager;
     Settings            = settings;
 }
コード例 #20
0
 //コンバートファイルリストのファイルを書き込む
 void Write()
 {
     byte[] bytes = BinaryUtil.BinaryWrite(ConvertFileList.Write);
     bytes = FileIOManager.Encode(bytes);
     File.WriteAllBytes(ConvertFileList.FilePath, bytes);
 }
コード例 #21
0
        //ファイルのコンバート
        void Convert()
        {
            try
            {
                AssetFileManager assetFileManager = FindObjectOfType <AssetFileManager>();
                if (assetFileManager == null)
                {
                    Debug.LogError("FileManager is not found in current scene");
                    return;
                }
                //ファイルの入出力に使う
                FileIOManager            fileIOManager = assetFileManager.FileIOManger;
                AssetFileManagerSettings settings      = assetFileManager.Settings;

                if (outputType == OutputType.Default)
                {
                    AssetFileManagerSettings.LoadType loadType = settings.LoadTypeSetting;
                    if (isOutputLocal && LocalDirectory != null)
                    {
                        //ローカルの場合は、LoadTypeをLocalCompressedに
                        settings.LoadTypeSetting = AssetFileManagerSettings.LoadType.LocalCompressed;
                        string output = new MainAssetInfo(LocalDirectory).FullPath;
                        //リソースをバージョンアップ
                        AdvFileListConverter converter = new AdvFileListConverter(output, fileIOManager, settings);
                        converter.VersionUp(VersionUpLocalFiles);
                        if (isOutputLocalLog)
                        {
                            converter.WriteLog(false);
                        }
                    }
                    if (isOutputServer && !string.IsNullOrEmpty(OutputServerResourcePath))
                    {
                        //サーバーの場合は、LoadTypeをServerに
                        settings.LoadTypeSetting = AssetFileManagerSettings.LoadType.Server;
                        //シナリオやリソースをバージョンアップ
                        AdvFileListConverter converter = new AdvFileListConverter(OutputServerResourcePath, fileIOManager, settings);
                        converter.VersionUp(VersionUpServerFiles);
                        if (isOutputServerLog)
                        {
                            converter.WriteLog(false);
                        }
                        //アセットバンドルをビルド
                        BuildAssetBundles(OutputServerResourcePath, fileIOManager, settings, isOutputServerLog);
                    }
                    settings.LoadTypeSetting = loadType;
                }
                else
                {
                    //シナリオやリソースをバージョンアップ
                    AdvFileListConverter converter = new AdvFileListConverter(AdvancedOutputPath, fileIOManager, settings);
                    converter.VersionUp(VersionUpAdvanceFiles);
                    if (isOutputAdvancedLog)
                    {
                        converter.WriteLog(false);
                    }
                    //アセットバンドルをビルド
                    BuildAssetBundles(AdvancedOutputPath, fileIOManager, settings, isOutputAdvancedLog);
                }

                AssetDatabase.Refresh();
            }
            catch (System.Exception e)
            {
                Debug.LogException(e);
            }
        }
コード例 #22
0
        //アセットバンドルのビルド
        void BuildAssetBundles(string outPutDirectoryPath, FileIOManager fileIOManager, AssetFileManagerSettings settings, bool isOutputLog)
        {
            if (assetBundleBuildMode == AssetBundleBuildMode.None)
            {
                return;
            }

            //アセットバンドルをプラットフォーム別にビルド
            List <BuildTarget> buildTargets = new List <BuildTarget>();

            switch (assetBundleBuildMode)
            {
            case AssetBundleBuildMode.OnlyEditor:                    //エディタ上のみ
                buildTargets.Add(EditorUserBuildSettings.activeBuildTarget);
                break;

            case AssetBundleBuildMode.AllPlatform:                    //全プラットフォーム
            {
                buildTargets = AssetBundleHelper.BuildTargetFlagsToBuildTargetList(buildTargetFlags);
            }
            break;

            default:
                break;
            }

            List <MainAssetInfo> assets = GetAssetBudleList(settings);

            RenameAssetBundles(assets);
            AssetBundleBuild[] builds = ToAssetBundleBuilds(assets);
            if (builds.Length <= 0)
            {
                return;
            }


            foreach (BuildTarget buildTarget in buildTargets)
            {
                string outputPath = FilePathUtil.Combine(outPutDirectoryPath, AssetBundleHelper.BuildTargetToBuildTargetFlag(buildTarget).ToString());
                //出力先のディレクトリを作成
                if (!Directory.Exists(outputPath))
                {
                    Directory.CreateDirectory(outputPath);
                }
                //アセットバンドルを作成
                AssetBundleManifest manifest = BuildPipeline.BuildAssetBundles(outputPath, builds, BuildAssetBundleOptions.None, buildTarget);

                //アセットバンドルの情報をバージョンアップ
                AdvFileListConverter converter = new AdvFileListConverter(outputPath, fileIOManager, settings);
                converter.VersionUp(
                    (x) =>
                {
                    int count = x.ConvertFileList.EditorVersionUpAssetBundle(manifest, buildTarget);
                    Debug.Log("" + count + " AsseBundle version up to target " + buildTarget.ToString());
                });
                if (isOutputLog)
                {
                    converter.WriteLog(true);
                }
            }
        }
コード例 #23
0
 /// <summary>
 /// 書き込み
 /// </summary>
 public void Write()
 {
     FileIOManager.WriteBinaryEncode(Path, WriteBinary);
 }
コード例 #24
0
 /// <summary>
 /// セーブデータを書き込み
 /// その場の状態を書き込まず、各ページ冒頭のオートセーブデータを利用する
 /// </summary>
 /// <param name="engine">ADVエンジン</param>
 /// <param name="saveData">書き込むセーブデータ</param>
 public void WriteSaveData(AdvEngine engine, AdvSaveData saveData)
 {
     saveData.SaveGameData(CurrentAutoSaveData, engine, UtageToolKit.CreateResizeTexture(CaptureTexture, CaptureWidth, CaptureHeight));
     FileIOManager.WriteBinaryEncode(saveData.Path, saveData.Write);
 }
コード例 #25
0
 /// <summary>
 /// セーブデータを消去
 /// </summary>
 public void Delete()
 {
     FileIOManager.Delete(Path);
 }
コード例 #26
0
 public AdvFileListConverter(string outPutDirectoryPath, FileIOManager fileIOManager)
 {
     OutputResourcesPath = outPutDirectoryPath;
     FileIOManager       = fileIOManager;
 }