Exemplo n.º 1
0
        private void UpdateAssetInfo(string[] assetPaths)
        {
            var refresh = false;

            AssetDatabase.StartAssetEditing();

            for (var i = 0; i < assetPaths.Length; i++)
            {
                var assetPath = assetPaths[i];

                EditorUtility.DisplayProgressBar("Update asset info", assetPath, (float)i / assetPaths.Length);

                // アセット情報収集.
                var infos = assetManageManager.CollectInfo(assetPath);

                foreach (var info in infos)
                {
                    // アセットバンドル名適用.
                    refresh |= info.ApplyAssetBundleName();
                }
            }

            EditorUtility.ClearProgressBar();

            AssetDatabase.StopAssetEditing();

            if (refresh)
            {
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();
            }
        }
Exemplo n.º 2
0
        //----- property -----

        //----- method -----

        public void Initialize(AssetManageModel assetManageModel, AssetManageManager assetManageManager)
        {
            if (initialized)
            {
                return;
            }

            this.assetManageModel   = assetManageModel;
            this.assetManageManager = assetManageManager;

            assetManageModel.OnDragAndDropAsObservable().Subscribe(x => OnDragAndDrop(x)).AddTo(Disposable);

            assetManageManager.CollectInfo();

            selectionGroupInfo = null;

            BuildManageInfoViews();

            initialized = true;
        }
Exemplo n.º 3
0
        private static AssetInfoManifest GenerateManifest(AssetManageManager assetManageManager)
        {
            // アセット情報を収集.
            assetManageManager.CollectInfo();

            var allAssetInfos = assetManageManager.GetAllAssetInfos().ToArray();

            // アセット情報を更新.
            var manifestPath = GetManifestPath(assetManageManager.ExternalResourcesPath);
            var manifest     = ScriptableObjectGenerator.Generate <AssetInfoManifest>(manifestPath);

            Reflection.SetPrivateField(manifest, "assetInfos", allAssetInfos);

            UnityEditorUtility.SaveAsset(manifest);

            // アセットバンドル名設定.
            var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(manifest));

            importer.assetBundleName = AssetInfoManifest.AssetBundleName;
            importer.SaveAndReimport();

            return(manifest);
        }