CN114887328A - 基于Unity的资源打包方法、装置、设备及介质 - Google Patents
基于Unity的资源打包方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114887328A CN114887328A CN202210635096.3A CN202210635096A CN114887328A CN 114887328 A CN114887328 A CN 114887328A CN 202210635096 A CN202210635096 A CN 202210635096A CN 114887328 A CN114887328 A CN 114887328A
- Authority
- CN
- China
- Prior art keywords
- directory
- packaging
- unity
- project
- system platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004806 packaging method and process Methods 0.000 title claims abstract description 148
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012856 packing Methods 0.000 claims abstract description 63
- 230000006870 function Effects 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 10
- 238000013515 script Methods 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000012858 packaging process Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种基于Unity的资源打包方法、装置、设备及介质;该方法包括:配置Unity项目的待打包资源;创建与多个系统平台一一对应的临时打包目录和打包缓存目录;针对每个系统平台,对待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,生成与该系统平台对应的打包结果。本公开能够提高打包效率、降低人力成本。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及基于Unity的资源打包方法、装置、设备及介质。
背景技术
Unity(跨平台游戏开发引擎)作为一种综合型游戏开发工具,其常应用于游戏应用安装包的生成。目前,基于Unity的资源打包方式主要分为单工程和多工程。单工程是指Unity打包技术基于同一个工程目录,但是当Unity项目需要打包到多个系统平台(如:iOS、安卓、Windows和Linux等),需要手动切换平台,且每个平台都需要操作一次资源配置;可见单工程的打包方式依赖人工监守,人力消耗大、耗时较长。多工程是指复制多份开发项目来并行执行,但是对于Unity项目的预操作依然需要执行四次,非常浪费时间。因此,目前的打包方式存在人力成本高、打包效率低的问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于Unity的资源打包方法、装置、设备及介质。
根据本公开的一方面,提供了一种基于Unity的资源打包方法,包括:
配置Unity项目的待打包资源;
创建与多个系统平台一一对应的临时打包目录和打包缓存目录;
针对每个系统平台,对所述待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,生成与该系统平台对应的打包结果。
根据本公开的另一方面,提供了一种基于Unity的资源打包装置,包括:
资源配置模块,用于配置Unity项目的待打包资源;
目录创建模块,用于创建与多个系统平台一一对应的临时打包目录和打包缓存目录;
打包模块,用于针对每个系统平台,对所述待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,生成与该系统平台对应的打包结果。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据上述基于Unity的资源打包方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行根据基于Unity的资源打包方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的一种基于Unity的资源打包方法、装置、设备及介质;该方法包括:配置Unity项目的待打包资源;创建与多个系统平台一一对应的临时打包目录和打包缓存目录;针对每个系统平台,对待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,生成与该系统平台对应的打包结果。本公开能够提高打包效率、降低人力成本。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的基于Unity的资源打包方法流程图;
图2为本公开实施例提供的打包过程的场景示意图;
图3为本公开实施例提供的Unity项目的目录示意图;
图4为本公开实施例提供的目录结构示意图;
图5为本公开实施例提供的临时打包目录结构示意图;
图6为本公开实施例提供的文本识别装置的结构示意图;
图7为本公开实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
目前,基于Unity的两种主要打包方式中,单工程需要手动切换平台,且每个平台都需要操作一次资源配置;可见单工程的打包方式依赖人工监守,人力消耗大、耗时较长;多工程对于Unity项目的预操作依然需要执行四次,非常浪费时间;此外,多工程还对打包机器的存储空间有较高的要求,占用大量的计算机存储空间。因此,为了缓解现有打包方式中人力成本高、打包效率低和存储空间占用大等问题中的至少一个问题,本公开实施例提供了基于Unity的资源打包方法、装置、设备及介质。该技术可以应用于诸如iOS、安卓、Windows和Linux等多系统平台的并行打包场景中,为便于理解,以下对本公开实施例展开描述。
图1为本公开实施例提供的一种基于Unity的资源打包方法流程图,该方法包括如下步骤:
步骤S102,配置Unity项目的待打包资源。
本实施例在配置待打包资源过程中,可以获取Unity项目的工程目录和功能模块名称,对工程目录进行定制化配置,以及对功能模块名称对应的项目资产目录和功能模块目录进行配置,由此得到待打包资源。其中,Unity项目的工程目录是Unity游戏引擎的开发目录,一般存在于终端设备(如电脑)中的一个文件夹,其中包含正在开发游戏的各类资产和代码。功能模块为Unity项目所包含的细分内容,以游戏项目为例,一个完整的Unity游戏项目,通常包含对话系统模块、寻路系统模块和任务系统模块等多个功能模块,每个功能模块均具有各自的功能模块名称。
步骤S104,创建与多个系统平台一一对应的临时打包目录和打包缓存目录。
多个系统平台例如可以包括:iOS、安卓、Windows和Linux等系统平台。在本实施例中,可以先创建与多个系统平台一一对应的多个临时打包目录,而后再创建与多个系统平台一一对应的多个打包缓存目录。
步骤S106,针对每个系统平台,对待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,生成与该系统平台对应的打包结果。
本公开实施例提供的基于Unity的资源打包方法,包括:首先配置Unity项目的待打包资源;然后创建与多个系统平台一一对应的临时打包目录和打包缓存目录;针对每个系统平台,对待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,生成与该系统平台对应的打包结果。本实施例通过配置待打包资源以及配置与系统平台一一对应的临时打包目录和打包缓存目录,能够同时启动多进程处理打包任务,明显提高了打包效率,且全称无需人力监守,降低了人力成本。
为了更好地理解,参照图2所示,本实施例对基于Unity的资源打包方法展开详细描述。
针对上述步骤S102,配置Unity项目的待打包资源的实施例包括:
调用命令行工具获取Unity项目的工程目录和功能模块名称。该命令行工具是使用Node运行环境开发的。具体实施时,使用命令行工具输入Unity项目的工程目录和需要打包的功能模块名称;其中,工程目录包括Unity项目在多个系统平台中运行所需的数据文件。将工程目录和功能模块名称为运行资源打包进程输入的参数信息。如图2所示,在Node运行环境下的Cli(Command Line Interface,命令行界面)中调用命令行工具,获取工程目录和功能模块名称。
根据工程目录和功能模块名称配置Unity项目的待打包资源。本实施例包括:对Unity项目的工程目录进行定制化配置,以及根据功能模块名称,配置Unity项目对应的项目资产目录和功能模块目录。
在一实施例中,可以准备Unity项目的工程目录,对Unity项目执行打包前的准备操作,该准备操作例如包括:对Unity项目的工程目录进行定制化配置。其中,工程目录包括可寻址资产系统(也即Addressable)、脚本构建模块、配置文件;相应地,定制化配置包括:
配置可寻址资产系统的打包配置信息;该打包配置信息包括:资产组AssetsGroup的组名称、资产框架AssetsSchemas的远程路径和本地路径。
配置脚本构建模块ScriptBuildMod采用自定义构建模式;
设置配置文件ProfileSetting的远程目录文件路径和本地目录文件路径。
上述准备操作还可以包括Git仓库操作、文件检查等,一般与实际打包需求相关,在此不再展开描述。
参照图3,可以根据功能模块名称,配置Unity项目对应的项目资产目录和功能模块目录。本实施例对Unity项目对应的资产目录和功能模块目录进行配置,能够更好的管理功能模块,从而可以区分功能模块执行打包。在一具体示例中,功能模块目录为Assets/modles/[mod文件夹],mod文件夹可以为多个,分别对应于各个功能模块。每个mod文件夹中包含assets、scripts和config,package.json三个文件夹和一个用于配置mod信息的json文件。其中assets文件夹中存放unity项目支持的资产,如图片文件、音频文件和模型文件等;scripts文件夹中存放代码的脚本文件;config,package.json中存放json配置文件。
上述关于项目资产目录和功能模块目录的配置实施例,能够广泛适用于不同的Unity项目,尤其是使用到addressable插件Unity项目,可以帮助提高Unity多系统平台的打包效率和减少打包成本。
基于以上实施例,将定制化配置后的工程目录、项目资产目录和功能模块目录下的资源文件作为待打包资源。
为了区分不同的系统平台,本实施例创建与多个系统平台一一对应的多个临时打包目录;如图4所示的一种实际应用中的目录结构,多个临时打包目录示例如下:iOS对应的临时打包目录BundleTmp/iOS、安卓对应的临时打包目录BundleTmp/Android、Linux对应的临时打包目录BundleTmp/StandaloneLinux64和Windows对应的临时打包目录BundleTmp/StandaloneWindows64。
创建与多个系统平台一一对应的多个打包缓存目录。打包缓存目录是在执行Unity打包过程中自动生成的中间文件,包含大量构建缓存文件,有助于下次打包时提高构建速度。如图4所示,多个打包缓存目录示例如下:iOS对应的打包缓存目录LibraryiOS、安卓对应的打包缓存目录LibraryAndroid、Linux对应的打包缓存目录LibraryStandaloneLinux64和Windows对应的打包缓存目录LibraryStandaloneWindows64。
针对每个系统平台,对待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,该实施例可以包括:
对Unity项目的定制化配置后的工程目录进行遍历,得到公共目录以及与不同系统平台分别匹配的固定目录。
在实际应用中,原始的Unity项目的工程目录中包含多种多样的目录,其中一些目录是针对不同系统平台专门设置的固定目录,如BundleTmp目录,还有一些目录是多个系统平台公有公用的公共目录,如Assets、Packages、Project、Settings等目录。从而,本实施例对定制化配置后的工程目录进行遍历,得到公共目录以及与不同系统平台分别匹配的固定目录。
针对每个固定目录,将该固定目录链接到同一系统平台对应的临时打包目录中。固定目录以Android.sln为例,固定目录Android.sln匹配于安卓系统平台,从而,将固定目录Android.sln链接到安卓系统平台对应的临时打包目录BundleTmp/Android中。
针对公共目录,可以通过软链接的方式将公共目录链接到每个临时打包目录中。其中,软连接用于为一个文件在另外一个位置建立一个不同的链接,即:在终端设备中虽然是不同的目录,但是不同的目录本质上是同一块物理数据;通过软链接能够共享同一份文件,从而减少存储空间占用。
在本实施例中,通过软链接的方式将Unity项目的中的公共目录链接到每个临时打包目录中;该方式实现了文件的复用,能够减少准备操作的重复操作,并且减少了计算机存储空间的占用。链接公共目录的临时打包目录的结构可参照图5,采用预设的显示符号(如图5中的箭头)标记通过软链接的方式引用的公共目录。
本实施例以软链接的方式将公共目录链接到临时打包目录中,能够保证Unity项目临时打包目录的完整性,使其能够成功打包,提高打包的成功率。
另外,针对每个打包缓存目录,分别通过软链接的方式将打包缓存目录链接到同一系统平台对应的临时打包目录中。或者说,通过软链接的方式,将多个打包缓存目录一一对应的链接到多个临时打包目录中,且所链接的打包缓存目录和临时打包目录对应于同一系统平台。本实施例通过软链接的方式将打包缓存目录链接到临时打包目录中,可以便于下次打包快速使用打包缓存目录,减少打包缓存目录二次构建的时间。
以上实施例通过软链接的方式,临时打包目录可以引用Unity项目的中的公共目录和打包缓存目录。
接下来,针对每个系统平台,将该系统平台对应的链接固定目录和公共目录的临时打包目录、打包缓存目录作为打包路径,在打包路径下对项目资产目录和功能模块目录进行打包处理。
本实施例中,通过Unity平台中的命令行参数,调用与Unity项目的运行环境匹配的配置接口,在打包路径下对项目资产目录和功能模块目录进行打包处理;其中,上述配置接口包括但不限于:AssetsDatabase.CreateAsset、Schema.SetVariableName、ProfileSettings.CreateValue。
在具体过程中,以临时打包目录、打包缓存目录为打包路径,以项目资产目录和功能模块目录下的资源文件为待打包资源,通过Unity平台Node运行环境提供的命令行参数,调用Unity官方提供的配置接口,在打包路径下对待打包资源执行打包命令,由此同时启动多个打包进程,生成与iOS、安卓、Linux和Windows一一对应的多个打包结果。其中,上述命令行参数可以为node.execSync。
在本实施例中,生成与系统平台对应的打包结果的过程可以参照如下所示。针对每个系统平台,首先生成与该系统平台对应的产物输出目录;多个系统平台对应的产物输出目录示例如下:安卓产物输出目录为Mod_build_out/Android、iOS产物输出目录为Mod_build_out/iOS、linux产物输出目录为Mod_build_out/StandaloneLinux64、Windows产物输出目录为Mod_build_out/StandloneWindows64。
本实施例通过配置产物输出目录,对不同系统平台打包使用的不同目录进行区分,便于对不同系统平台打包数据进行维护和管理。
然后对产物输出目录进行打包,生成压缩文件,以将压缩文件作为该系统平台对应的打包结果;上述压缩文件如ZIP压缩文件。
本实施例提供的方法还可以将压缩文件上传至云存储,在云存储中生成压缩文件对应的存储地址;向预设的服务器发起携带存储地址的注册请求,以使服务器对存储地址对应的压缩文件进行注册;上述注册请求例如可以为https请求。
在一种实施例中,还可以基于项目需求,如需要指定版本信息,使用Git(分布式版本控制系统)对Unity项目进行版本管理。在实施时,可以通过https请求获取Unity项目的版本信息,使用Git操作对版本信息进行管理。Git可以有效、高速地处理从很小到非常大的项目版本管理,广泛应用于程序研发阶段,基于此,本实施例使用Git对Unity工程进行版本管理。在版本管理过程中,Git操作包含但不限于:拉取主项目代码、清除未跟踪的目录和文件、创建新分支、初始化所有git子模块、拉取所有git子模块、清理设置所有子模块的分支。
由于本实施例配置与系统平台一一对应的临时打包目录、打包缓存目录和产物输出目录,能够同时启动多进程处理打包任务,因而,对Unity项目进行版本管理同样也只需要执行一次,进一步提高了打包效率。
为了比较不同打包方式在打包时长和存储空间方面的区别,本实施例在实际场景中采用了如下两种打包实例。
实例一:采用多工程方式,复制四份Unity项目执行打包;该实例对应的存储空间占用为106.84G;打包的总时长为220s。
实例二:采用本实施例提供的基于Unity的资源打包方法执行打包;该实例对应的存储空间占用为26G;打包的总时长为148s。
关于上述存储空间占用的对比,相比复制多份项目执行打包,本实施例采用的技术方案在存储空间的占用上,基本遵循倍数的关系,即N个平台的打包任务,就对应N倍的存储空间优化,这对于打包机来说,特别是多平台打包机多数采用mac系统,能够极大地节约高昂的存储空间成本。
关于上述打包时长的对比,本实施例采用的技术方案通过并行打包能够加快总体的打包时间。
综上,本公开实施例提供的基于Unity的资源打包方法,使用基于node的命令行参数调度整个Unity打包的流程,无需人力监守。同时,通过配置待打包资源以及创建多组临时打包目录和多组打包缓存目录,实现动态创建多组Unity打包工程,从而能够启动多进程处理打包任务,由此提高打包效率,减少编译总耗时,减少存储空间占用。
根据以上实施例提供的基于Unity的资源打包方法,本实施例提供一种基于Unity的资源打包装置,用于实现上述方法。如图6所示,基于Unity的资源打包装置600包括:
资源配置模块602,用于配置Unity项目的待打包资源;
目录创建模块604,用于创建与多个系统平台一一对应的临时打包目录和打包缓存目录;
打包模块606,用于针对每个系统平台,对待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,生成与该系统平台对应的打包结果。
在一些实施例中,资源配置模块602具体用于:
调用命令行工具获取Unity项目的工程目录和功能模块名称;根据工程目录和功能模块名称配置Unity项目的待打包资源。
在一些实施例中,资源配置模块602具体用于:
对Unity项目的工程目录进行定制化配置,其中,工程目录包括可寻址资产系统、脚本构建模块、配置文件,定制化配置包括:配置可寻址资产系统的打包配置信息、配置脚本构建模块采用自定义构建模式、设置配置文件的远程目录文件路径和本地目录文件路径;
根据功能模块名称,配置Unity项目对应的项目资产目录和功能模块目录;
将定制化配置后的工程目录、项目资产目录和功能模块目录下的资源文件作为待打包资源。
在一些实施例中,打包模块606具体用于:
对Unity项目的定制化配置后的工程目录进行遍历,得到公共目录以及与不同系统平台分别匹配的固定目录;
针对每个固定目录,将该固定目录链接到同一系统平台对应的临时打包目录中;
通过软链接的方式将公共目录链接到每个临时打包目录中;
针对每个系统平台,将该系统平台对应的链接固定目录和公共目录的临时打包目录、打包缓存目录作为打包路径,在打包路径下对项目资产目录和功能模块目录进行打包处理。
在一些实施例中,打包模块606具体用于:
通过Unity平台中的命令行参数,调用与Unity项目的运行环境匹配的配置接口,在打包路径下对项目资产目录和功能模块目录进行打包处理。
在一些实施例中,打包模块606具体用于:
生成与该系统平台对应的产物输出目录;对产物输出目录进行打包,生成压缩文件,以将压缩文件作为该系统平台对应的打包结果。
在一些实施例中,基于Unity的资源打包装置600还包括上传模块,其用于:
将压缩文件上传至云存储,在云存储中生成压缩文件对应的存储地址;向预设的服务器发起携带存储地址的注册请求,以使服务器对存储地址对应的压缩文件进行注册。
在一些实施例中,基于Unity的资源打包装置600还包括链接模块,其用于:
针对每个打包缓存目录,通过软链接的方式将打包缓存目录链接到同一系统平台对应的临时打包目录中。
本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
参考图7,现将描述可以作为本公开的服务器或客户端的电子设备700的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
电子设备700中的多个部件连接至I/O接口705,包括:输入单元706、输出单元707、存储单元708以及通信单元709。输入单元706可以是能向电子设备700输入信息的任何类型的设备,输入单元706可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元707可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元704可以包括但不限于磁盘、光盘。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理。例如,在一些实施例中,基于Unity的资源打包方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到电子设备700上。在一些实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于Unity的资源打包方法。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种基于Unity的资源打包方法,其特征在于,包括:
配置Unity项目的待打包资源;
创建与多个系统平台一一对应的临时打包目录和打包缓存目录;
针对每个系统平台,对所述待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,生成与该系统平台对应的打包结果。
2.根据权利要求1所述的方法,其特征在于,所述配置Unity项目的待打包资源,包括:
调用命令行工具获取Unity项目的工程目录和功能模块名称;
根据所述工程目录和所述功能模块名称配置所述Unity项目的待打包资源。
3.根据权利要求2所述的方法,其特征在于,所述根据所述工程目录和所述功能模块名称配置所述Unity项目的待打包资源,包括:
对所述Unity项目的工程目录进行定制化配置,其中,所述工程目录包括可寻址资产系统、脚本构建模块、配置文件,所述定制化配置包括:配置所述可寻址资产系统的打包配置信息、配置所述脚本构建模块采用自定义构建模式、设置所述配置文件的远程目录文件路径和本地目录文件路径;
根据所述功能模块名称,配置所述Unity项目对应的项目资产目录和功能模块目录;
将定制化配置后的工程目录、所述项目资产目录和所述功能模块目录下的资源文件作为待打包资源。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述针对每个系统平台,对所述待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,包括:
对所述Unity项目的定制化配置后的工程目录进行遍历,得到公共目录以及与不同系统平台分别匹配的固定目录;
针对每个固定目录,将该固定目录链接到同一系统平台对应的临时打包目录中;
通过软链接的方式将所述公共目录链接到每个所述临时打包目录中;
针对每个系统平台,将该系统平台对应的链接所述固定目录和所述公共目录的临时打包目录、所述打包缓存目录作为打包路径,在所述打包路径下对所述项目资产目录和所述功能模块目录进行打包处理。
5.根据权利要求4所述的方法,其特征在于,所述在所述打包路径下对所述项目资产目录和所述功能模块目录进行打包处理,包括:
通过Unity平台中的命令行参数,调用与所述Unity项目的运行环境匹配的配置接口,在所述打包路径下对所述项目资产目录和所述功能模块目录进行打包处理。
6.根据权利要求1-3中任一项所述的方法,其特征在于,所述生成与该系统平台对应的打包结果,包括:
生成与该系统平台对应的产物输出目录;
对所述产物输出目录进行打包,生成压缩文件,以将所述压缩文件作为该系统平台对应的打包结果。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述压缩文件上传至云存储,在所述云存储中生成所述压缩文件对应的存储地址;
向预设的服务器发起携带所述存储地址的注册请求,以使所述服务器对所述存储地址对应的压缩文件进行注册。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对每个所述打包缓存目录,通过软链接的方式将所述打包缓存目录链接到同一系统平台对应的临时打包目录中。
9.一种基于Unity的资源打包装置,其特征在于,包括:
资源配置模块,用于配置Unity项目的待打包资源;
目录创建模块,用于创建与多个系统平台一一对应的临时打包目录和打包缓存目录;
打包模块,用于针对每个系统平台,对所述待打包资源、该系统平台的临时打包目录和该系统平台的打包缓存目录进行打包处理,生成与该系统平台对应的打包结果。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1至8任一所述的方法。
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1至8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210635096.3A CN114887328A (zh) | 2022-06-06 | 2022-06-06 | 基于Unity的资源打包方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210635096.3A CN114887328A (zh) | 2022-06-06 | 2022-06-06 | 基于Unity的资源打包方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114887328A true CN114887328A (zh) | 2022-08-12 |
Family
ID=82729175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210635096.3A Pending CN114887328A (zh) | 2022-06-06 | 2022-06-06 | 基于Unity的资源打包方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114887328A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038027A (zh) * | 2017-03-06 | 2017-08-11 | 北京潘达互娱科技有限公司 | 一种由Unity到iOS的封装方法及装置 |
CN107066257A (zh) * | 2017-03-06 | 2017-08-18 | 北京潘达互娱科技有限公司 | 一种由Unity到安卓的封装方法及装置 |
CN109766101A (zh) * | 2018-12-12 | 2019-05-17 | 武汉掌游科技有限公司 | 一种Android自动打包方法及系统 |
CN111580802A (zh) * | 2020-04-30 | 2020-08-25 | 完美世界(北京)软件科技发展有限公司 | 持续集成方法、基于分布式编译的持续集成方法及系统 |
CN113384896A (zh) * | 2021-06-25 | 2021-09-14 | 苏州沁游网络科技有限公司 | 基于Unity的资源打包方法、装置、设备及介质 |
CN114327593A (zh) * | 2021-12-24 | 2022-04-12 | 埃洛克航空科技(北京)有限公司 | Unity打包Android生成aar的方法、系统及电子设备 |
-
2022
- 2022-06-06 CN CN202210635096.3A patent/CN114887328A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038027A (zh) * | 2017-03-06 | 2017-08-11 | 北京潘达互娱科技有限公司 | 一种由Unity到iOS的封装方法及装置 |
CN107066257A (zh) * | 2017-03-06 | 2017-08-18 | 北京潘达互娱科技有限公司 | 一种由Unity到安卓的封装方法及装置 |
CN109766101A (zh) * | 2018-12-12 | 2019-05-17 | 武汉掌游科技有限公司 | 一种Android自动打包方法及系统 |
CN111580802A (zh) * | 2020-04-30 | 2020-08-25 | 完美世界(北京)软件科技发展有限公司 | 持续集成方法、基于分布式编译的持续集成方法及系统 |
CN113384896A (zh) * | 2021-06-25 | 2021-09-14 | 苏州沁游网络科技有限公司 | 基于Unity的资源打包方法、装置、设备及介质 |
CN114327593A (zh) * | 2021-12-24 | 2022-04-12 | 埃洛克航空科技(北京)有限公司 | Unity打包Android生成aar的方法、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115292026B (zh) | 容器集群的管理方法、装置、设备及计算机可读存储介质 | |
CN103970908A (zh) | 一种虚拟机模板ivf存储方法 | |
CN105512029A (zh) | 一种测试智能终端的方法、服务器及系统 | |
CN113064630B (zh) | 移动端app自动打包方法、系统、电子设备及存储介质 | |
JP2017111791A (ja) | シミュレートされたオペレータ・トレーニング・システムに対するクラウド・ベースのコンピューティング・クラスタのための方法、システムおよびコンピュータ・プログラム | |
CN109992278A (zh) | 一种基于容器的应用程序发布方法及装置 | |
US8938712B2 (en) | Cross-platform virtual machine and method | |
CN111651219A (zh) | 一种多模块项目配置文件管理的方法及设备 | |
CN104166570B (zh) | 一种在线更新文件的方法、设备及系统 | |
CN113742014A (zh) | 界面渲染方法、装置、电子设备及存储介质 | |
CN117112122A (zh) | 一种集群部署方法和装置 | |
CN110795162B (zh) | 生成容器镜像文件的方法和装置 | |
CN113572833B (zh) | 一种云手机的维护方法、装置、电子设备和存储介质 | |
CN112131177A (zh) | 数据迁移方法及装置、存储介质、电子设备 | |
CN114887328A (zh) | 基于Unity的资源打包方法、装置、设备及介质 | |
CN110019059B (zh) | 一种定时同步的方法和装置 | |
CN111740869B (zh) | 基于物理网卡的kubernetes网络实现方法、系统、设备及介质 | |
CN111767345B (zh) | 建模数据同步方法、装置、计算机设备及可读存储介质 | |
CN116820663A (zh) | 镜像构建方法、设备、存储介质及装置 | |
CN109634647B (zh) | 大型前端项目的构建方法及系统 | |
CN113434143A (zh) | iOS应用界面布局装置及方法 | |
CN112181403A (zh) | 开发运维一体化实现方法、装置、设备及可读存储介质 | |
CN112685051A (zh) | 自动执行shell脚本的方法、装置、平台及存储介质 | |
CN111651146A (zh) | 一种函数生成方法、装置、设备和介质 | |
CN110971665A (zh) | 一种对接多类型存储的管理方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220812 |
|
RJ01 | Rejection of invention patent application after publication |