Unity命令行打包WebGL的示例代码

1.扫描所有场景,保存并添加到Build Settings中

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneUtils
{
#if UNITY_EDITOR
    public static void RefreshAllScene()
    {
        // 设置场景 *.unity 路径
        string resourcesPath = Application.dataPath;
        // 遍历获取目录下所有 .unity 文件
        string[] absolutePaths = Directory.GetFiles(resourcesPath, "*.unity", SearchOption.AllDirectories);
        List<EditorBuildSettingsScene> list = new List<EditorBuildSettingsScene>();
        // 定义 场景数组
        for (int i = 0; i < absolutePaths.Length; i++)
        {
            string path = "Assets" + absolutePaths[i].Remove(0, resourcesPath.Length);
            path = path.Replace("\\", "/");
            // 通过scene路径初始化
            list.Add(new EditorBuildSettingsScene(path, true));
        }
        // 设置 scene 数组
        EditorBuildSettings.scenes = list.ToArray();
    }
    public static void RefreshScene(params string[] tagetPaths)
            foreach (string tagetPath in tagetPaths)
            {
                if (path.Contains(tagetPath))
                {
                    // 通过scene路径初始化
                    list.Add(new EditorBuildSettingsScene(path, true));
                }
            }
#endif
}

2.暴露一个打包的方法,方便命令行调用

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

/// <summary>
/// 命令行批处理
/// </summary>
public class Batchmode
{
#if UNITY_EDITOR
    static List<string> levels = new List<string>();
    [MenuItem("FViteMVC/Build/BuildWebGL", false)]
    public static void BuildWebGL()
    {
        // 打包前需要做的事情
        FviteMvcEditor.RefreshAllScene();
        foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
        {
            if (!scene.enabled) continue;
            levels.Add(scene.path);
        }
        // 第一个参数为所有场景路径
        // 第二个参数是打包位置
        // 第三个参数是目标平台
        // 第四个参数是构建选项 None代表执行指定的构建,不包含任何特殊设置或额外任务
        BuildPipeline.BuildPlayer(levels.ToArray(), "Build", BuildTarget.WebGL,BuildOptions.None);
    }
#endif
}

3.写一个.bat文件

@echo off
echo lunch unity.exe ,please wait a moment...
"C:\Program Files\Unity\Hub\Editor\2020.3.18f1c1\Editor\Unity.exe" -quit -batchmode -projectPath "D:\Unity\Unity\FViteMVC" -executeMethod Batchmode.BuildWebGL
echo "Build WebGL done"
pause

到此这篇关于Unity命令行打包WebGL的文章就介绍到这了,更多相关Unity打包WebGL内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Unity中webgl使用避雷要素指南

    目录 1.不支持ios设备播放音频(无论是MP3还是ogg格式) 2.在ios设备的浏览器(无论是Safari 还是微信浏览器) 3.发布到webgl的时候注意所有Text都需要使用自定义的字体 4.若要更改loading界面 5.如果想做微信小程序可以通过laya进行后期制作 6.在本地iis服务器运行没有问题 7.在webgl中使用对象池模式可能会出现莫名其妙的状况 8.在webgl中调用接口动态生成元素还有个坑 1.不支持ios设备播放音频(无论是MP3还是ogg格式) 目前是通过unit

  • Unity 使用TexturePacker打包图集的操作方法

    目录 Unity TexturePacker 使用方法 Unity 打开Unity Ctrl+9,打开Unity商店,下载TexturePacker Importer插件 这个插件是用来解析图集文件的,是免费的 TexturePacker 打开TexturePacker,右侧是设置栏,一般基础设置就够用了 选择Unity框架: 设置界面右下角,会将文件最终算出的大小告诉你,你可以按照你的需求调整纹理格式 在高级设置界面,有布局选项 博主测试,大小限制,使用任意尺寸,Unity读不出来,比较奇怪,

  • Unity实现批量Build打包详解

    一般来讲如果项目是PC或Android.IOS端不会有批量Build打包这样的需求,但如果项目是WebGL端可能会遇到这样的需求:不同场景打包成不同的包体,入口是前端在页面中布局的,点击链接打开相应的程序.依次手动打包比较繁琐而且需要等待很长时间,因此写了批量Build这样的功能,下班时点击Build经历漫长的夜晚,第二天上班时包体已经都打好了. 核心API是UnityEditor.BuildPipeline类中的BuildPlayer,调用该方法传入相应参数即可实现打包,我们要做的是做一个配置

  • Unity命令行打包WebGL的示例代码

    1.扫描所有场景,保存并添加到Build Settings中 using System.Collections; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine; using UnityEngine.SceneManagement; public class SceneUtils { #if UNITY_EDITOR public static void Refresh

  • 使用Apache commons-cli包进行命令行参数解析的示例代码

    Apache的commons-cli包是专门用于解析命令行参数格式的包. 依赖: <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.3.1</version> </dependency> 使用此包需要: 1.先定义有哪些参数需要解析.哪些参数有额外的选项.每个参数的描述等等,对应

  • 用C++实现一个命令行进度条的示例代码

    缘起 最近做遥感影像融合的GWPCA方法,在带宽比较大的时候速度太慢了,需要有个进度条指示一下,然后我去找进度条的库,发现github上面的C/C++的相应的库似乎没有能在VS下跑的,自己花了点时间写了一个. 效果 实现 大概需要考虑这样几个要素 已完成的百分比 执行速度 已执行的时间 剩余时间 另外进度条的引入不能破坏已有的执行结构,最好和Python的tqdm库类似,通过 start , update 等函数来完成整个进度条,因此对于C语言来说,需要一个定时器,定期将进度条进行重绘(不可能更

  • 利用ffmpeg命令行转压视频示例代码

    在开始本文的正文之前,首先得安装好ffmpeg程序(Linux下还得安装x264编码).Mac下直接用brew安装: brew install ffmpeg --with-faac --with-fdk-aac --with-ffplay --with-fontconfig --with-freetype --with-libass --with-libbluray --with-libcaca --with-libsoxr --with-libquvi --with-frei0r --with

  • Maven 命令行打包 和 pom.xml的常用配置详解

    maven 命令行打包 mvn -v, --show-version 现在最新的maven版本是 3.6,我这里用的还是 2017 年下载的 3.1.1 版本(虽然有点过时,但是大版本不变,指令基本一样) mvn -h, --help 使用 help 命令可以看到 maven 命令的帮助文档,下面主要介绍两个常用的指令 -- D 和 P. mvn -D, --define <arg> mvn -DpropertyName=propertyValue clean package 可以用来临时定义

  • python调用ffmpeg命令行工具便捷操作视频示例实现过程

    目录 最重要的事 裁剪视频 计算分段 获取视频长度 分段 获取文件 代码集成 总结 参考资料 文 | 李晓飞 来源:Python 技术「ID: pythonall」 最近有了一个新任务,需要将赛事视频,拆分成两分钟以内的小段,用于发布到短视频平台上. 本以为是个一次性的工作,结果赛事视频数据巨大,视频文件长短不一,完全没法手工处理,于是 Python 又一次拯救了我. 还等什么,开始干吧! 最重要的事 无论做什么事情,都要去分析一下最重要的是什么,然后集中精力攻克,再继续找最重要的事. 对我们这

  • 在Linux下通过命令行打包Android应用的方法

    本文介绍了在Linux下通过命令行打包Android应用的方法,分享给大家,具体如下: Requirements Ubuntu 16.04 sdk tools for linux Java 8 准备环境 安装Shell工具 sudo apt install -y wget unzip git 安装JDK sudo apt install -y openjdk-8-jdk # 查看结果 java -version 初始化目录与环境变量 BUILD_BASE=`echo ~` export ANDR

  • Python中实现一行拆多行和多行并一行的示例代码

    粉丝提问 今天粉丝提了下面这样一个问题,其中一个是"一行拆多行",另外一个是"多行并一行",貌似群友用power query已经解决了.但是基于Python怎么做呢?接着往下看. 一行拆多行 上面这个问题我会提供两个思路,供大家选择,当然肯定是越简单得越好.每一种方法中都有一些好用的技巧,希望大家能够好好学习. 1)方法一 下方代码中有很多重要的知识点,需要我们下去好好学习一下,我这里只提供解体思路,关于每个知识点怎么用,希望大家下去自行研究学习. Pandas.m

  • Unity中 mesh生成斜坡的示例代码

    Mesh概念: Mesh是Unity中的一个组件,称为网格组件.通俗的讲,Mesh是指模型的网格,3D模型是由多边形拼接而成,而多边形实际上是由多个三角形拼接而成的.所以一个3D模型的表面其实是由多个彼此相连的三角面构成.三维空间中,构成这些三角形的点和边的集合就是Mesh. Mesh组成: 1.顶点坐标数组vertexes 2.顶点在uv坐标系中的位置信息数组uvs 3.三角形顶点顺时针或者逆时针索引数组triangles 4.MeshFiler组件,用于增加mesh属性 5.MeshRend

  • Unity实现跑马灯效果的示例代码

    目录 一.效果 二.需要动画插件DOTween 三.脚本 1.每个格子上的脚本文件 2.管理脚本文件 一.效果 二.需要动画插件DOTween 下载地址 三.脚本 1.每个格子上的脚本文件 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DG.Tweening; public class MarqueeUIItem : MonoBe

随机推荐