コード例 #1
0
    public void ExportScriptableObjects(ScriptableObject[] scriptableObjects, ysEditorData.Platform buildTarget, string bundleName, string outputDirectoryPath)
    {
        AssetBundleBuild[] buildArray = new AssetBundleBuild[1];

        buildArray[0].assetBundleName = FormatOutputName(bundleName);
        string[] paths = new string[scriptableObjects.Length];
        for (int i = 0; i < scriptableObjects.Length; i++)
        {
            paths[i] = AssetDatabase.GetAssetPath(scriptableObjects[i]);
        }
        buildArray[0].assetNames = paths;
        BuildTarget buildTaget = BuildTarget.Android;

        switch (buildTarget)
        {
        case ysEditorData.Platform.android:
            buildTaget = BuildTarget.Android;
            break;

        case ysEditorData.Platform.ios:
            buildTaget = BuildTarget.iOS;
            break;

        default:
            break;
        }
        BuildPipeline.BuildAssetBundles(
            outputDirectoryPath,
            buildArray,
            BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.ForceRebuildAssetBundle,
            buildTaget);
        Debug.Log("All prefab exports succeed...");
    }
コード例 #2
0
    public void ExportUnityObjects(UnityEngine.Object[] prefabs, ysEditorData.Platform buildTarget, string bundleName, string outputDirectoryPath, string extention = "unity3d")
    {
        AssetBundleBuild[] buildArray = new AssetBundleBuild[1];

        buildArray[0].assetBundleName = FormatOutputName(bundleName);
        string[] paths = new string[prefabs.Length];
        for (int i = 0; i < prefabs.Length; i++)
        {
            paths[i] = AssetDatabase.GetAssetPath(prefabs[i]);
        }
        buildArray[0].assetNames = paths;
        BuildTarget buildTaget = BuildTarget.Android;

        switch (buildTarget)
        {
        case ysEditorData.Platform.android:
            buildTaget = BuildTarget.Android;
            break;

        case ysEditorData.Platform.ios:
            buildTaget = BuildTarget.iOS;
            break;

        default:
            break;
        }
        BuildPipeline.BuildAssetBundles(
            outputDirectoryPath,
            buildArray,
            BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.ForceRebuildAssetBundle,
            buildTaget);
        EditorUtility.OpenFilePanel("输出路径", Path.GetFullPath(outputDirectoryPath), extention);
        //Debug.Log("All prefab exports succeed...");
    }
コード例 #3
0
    //单独打包一个prefab到一个bundle
    public void ExportPrefab(GameObject prefab, ysEditorData.Platform buildTarget, string outputDirectoryPath)
    {
        AssetBundleBuild[] buildArray = new AssetBundleBuild[1];
        buildArray[0].assetBundleName = FormatOutputName(prefab.name);
        buildArray[0].assetNames      = new string[] { AssetDatabase.GetAssetPath(prefab) };
        BuildTarget buildTaget = BuildTarget.Android;

        switch (buildTarget)
        {
        case ysEditorData.Platform.android:
            buildTaget = BuildTarget.Android;
            break;

        case ysEditorData.Platform.ios:
            buildTaget = BuildTarget.iOS;
            break;

        default:
            break;
        }
        BuildPipeline.BuildAssetBundles(
            outputDirectoryPath,
            buildArray,
            BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.ForceRebuildAssetBundle,
            buildTaget);

        Debug.Log(prefab.name + " exports succeed...");
    }
コード例 #4
0
    public void ExportScriptableObjects(List <ScriptableObject> scriptableObjects, ysEditorData.Platform buildTarget, string bundleName, string outputDirectoryPath, bool isShowDialog = false)
    {
        AssetBundleBuild[] buildArray = new AssetBundleBuild[1];

        buildArray[0].assetBundleName = FormatOutputName(bundleName);
        string[] paths = new string[scriptableObjects.Count];
        for (int i = 0; i < scriptableObjects.Count; i++)
        {
            paths[i] = AssetDatabase.GetAssetPath(scriptableObjects[i]);
        }
        buildArray[0].assetNames = paths;
        BuildTarget buildTaget = BuildTarget.Android;

        switch (buildTarget)
        {
        case ysEditorData.Platform.android:
            buildTaget = BuildTarget.Android;
            break;

        case ysEditorData.Platform.ios:
            buildTaget = BuildTarget.iOS;
            break;

        default:
            break;
        }
        BuildPipeline.BuildAssetBundles(
            outputDirectoryPath,
            buildArray,
            BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.ForceRebuildAssetBundle,
            buildTaget);
        string tipString = "导出成功,共导出" + scriptableObjects.Count + "个文件,1个资源包,资源包名:" + bundleName + "资源路径:" + outputDirectoryPath;

        if (isShowDialog)
        {
            EditorUtility.DisplayDialog("提示", tipString, "继续");
        }
        else
        {
            Debug.Log(tipString);
        }
    }
コード例 #5
0
    //打包多个prefab到一个bundle
    public void ExportPrefabs(GameObject[] prefabs, ysEditorData.Platform buildTarget, string bundleName, string outputDirectoryPath, bool showResultDialog = false)
    {
        if (!Directory.Exists(outputDirectoryPath))
        {
            Directory.CreateDirectory(outputDirectoryPath);
        }
        AssetBundleBuild[] buildArray = new AssetBundleBuild[1];
        buildArray[0].assetBundleName = FormatOutputName(bundleName);
        string[] paths = new string[prefabs.Length];
        for (int i = 0; i < prefabs.Length; i++)
        {
            paths[i] = AssetDatabase.GetAssetPath(prefabs[i]);
        }
        buildArray[0].assetNames = paths;
        BuildTarget buildTaget = BuildTarget.Android;

        switch (buildTarget)
        {
        case ysEditorData.Platform.android:
            buildTaget = BuildTarget.Android;
            break;

        case ysEditorData.Platform.ios:
            buildTaget = BuildTarget.iOS;
            break;

        default:
            break;
        }
        BuildPipeline.BuildAssetBundles(
            outputDirectoryPath,
            buildArray,
            BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.ForceRebuildAssetBundle,
            buildTaget);
        Debug.Log("All prefab exports succeed...");
        if (showResultDialog)
        {
            EditorUtility.DisplayDialog("提示", "文件导出成功,共" + prefabs.Length + "个文件,共" + buildArray.Length + "个资源包。", "继续");
            EditorUtility.OpenFilePanel("导出路径", Path.GetFullPath(outputDirectoryPath), "");
        }
    }
コード例 #6
0
    //打包多个prefab到多个bundle
    public void ExportPrefabsIndependent(List <GameObject> prefabList, ysEditorData.Platform platform, string outputDirectoryPath, bool isShowDialog = false)
    {
        CheckDirectoryPath(outputDirectoryPath, true);
        AssetBundleBuild[] buildArray = new AssetBundleBuild[prefabList.Count];
        for (int i = 0; i < prefabList.Count; i++)
        {
            buildArray[i].assetBundleName = FormatOutputName(prefabList[i].name);
            buildArray[i].assetNames      = new string[] { AssetDatabase.GetAssetPath(prefabList[i]) };
        }
        BuildTarget buildTaget = BuildTarget.Android;

        switch (platform)
        {
        case ysEditorData.Platform.android:
            buildTaget = BuildTarget.Android;
            break;

        case ysEditorData.Platform.ios:
            buildTaget = BuildTarget.iOS;
            break;

        default:
            break;
        }
        BuildPipeline.BuildAssetBundles(
            outputDirectoryPath,
            buildArray,
            BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.ForceRebuildAssetBundle,
            buildTaget);
        string tipString = "导出成功,共导出" + prefabList.Count + "个文件,1个资源包,资源路径:" + outputDirectoryPath;

        if (isShowDialog)
        {
            EditorUtility.DisplayDialog("提示", tipString, "继续");
        }
        else
        {
            Debug.Log(tipString);
        }
    }