You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Git与CI中构建含第三方资产的Unity项目(不提交资产至仓库)

Unity第三方资产管理与CI构建合规方案

核心思路

只提交项目核心代码、依赖清单和许可证文件,第三方资产通过CI构建阶段自动拉取,避免将受版权保护的资产提交至Git仓库。

可行方案

1. Unity Package Manager(UPM)清单驱动下载

  • 用UPM管理所有第三方资产,在Packages/manifest.json和Packages/packages-lock.json中声明依赖(支持Asset Store、Git私有仓库、自定义注册表)
  • CI构建前执行Unity命令行恢复依赖:
    unity-editor -quit -batchmode -nographics -restorePackages -username $UNITY_USERNAME -password $UNITY_PASSWORD
    
  • 注意:将Unity用户名、密码或认证令牌存储为GitHub Secrets,避免明文暴露;-restorePackages会自动从配置来源下载所有缺失的包

2. Asset Store命令行定向下载

  • 针对仅在Asset Store发布的资产,用Unity官方命令行工具指定资产ID下载:
    unity-editor -quit -batchmode -nographics -assetStoreDownload <asset-id> -username $UNITY_USERNAME -password $UNITY_PASSWORD
    
  • 提前从Unity Asset Store资产页面URL提取目标资产ID
  • 此方式适配未接入UPM的传统Asset Store资产

3. 私有资产仓库/缓存服务

  • 搭建私有UPM仓库(如Nexus、Artifactory),将第三方资产上传至私有仓库后,在项目manifest中配置私有仓库地址
  • 利用GitHub Actions缓存功能,减少重复下载耗时:
    - name: Cache Unity Library
      uses: actions/cache@v3
      with:
        path: Library
        key: ${{ runner.os }}-unity-library-${{ hashFiles('Packages/**') }}
        restore-keys: |
          ${{ runner.os }}-unity-library-
    
  • 私有仓库可严格控制访问权限,符合第三方资产的分发许可要求

4. 离线资产包+CI预下载脚本

  • 将第三方资产打包为压缩包,存储在内部私有存储(如企业网盘、私有对象存储)
  • CI构建阶段添加脚本,从私有存储下载压缩包并解压到项目对应目录:
    # 示例:下载并解压到指定目录
    wget https://your-private-storage/third-party-assets.zip
    unzip third-party-assets.zip -d Assets/ThirdParty/
    
  • 此方案适用于不支持UPM的自定义资产或旧版本资源

合规注意事项

  • 严格遵守第三方资产许可协议,确保CI环境仅用于内部构建,不对外分发资产
  • 在项目仓库中保留第三方资产的许可证文件(如LICENSE-ThirdParty目录),便于合规审计
  • 避免将资产缓存到公开可访问位置,所有缓存仅在CI内部复用

内容的提问来源于stack exchange,提问作者DJ Spiess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:55:22