Unity 如何修改 UPM 导入的依赖

77 Lv2

背景

我项目的代码中使用到了关于 wechat 的宏,wechat 的依赖程序集中有自己定义的编译条件宏,如果二者不一致,会导致项目代码和依赖使用不对齐,所以需要修改 wechat 依赖的编译条件宏。

首先,在 Unity 中,我们无法直接修改 UPM 的依赖,因为 UPM 是由 Unity 自动管理的,导入后会在 Packages 的 Read Only 目录下,所以无法直接修改。

2025-02-20-11-52-33.png

所以需要采取一些策略,实现能够修改依赖中程序集定义的编译条件宏。

策略

  1. 引入 wechat 的方式不变,依旧是通过 UPM 引入
  2. 引入后,将 Packages ReadOnly 目录下的 wechat 依赖复制到 Packages 目录下, 这时候就不再是只读
  3. 修改编译条件宏
  4. 手动在项目 packages-lock.json 中追加依赖,version 参考 filesystem 中packages 中的版本
    2025-02-20-11-57-31.png
    2025-02-20-12-00-04.png

差异对比

UPM直接引入

项目mainifest.json文件

1
2
3
4
"dependencies": {
"com.qq.weixin.minigame": "https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git",
"com.unity.2d.sprite": "1.0.0",
}

项目packages-lock.json文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"dependencies": {
"com.qq.weixin.minigame": {
"version": "https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git",
"depth": 0,
"source": "git",
"dependencies": {},
"hash": "a5a5f32fbd7812f8acc76942cb027282fa42ab0f"
},
"com.unity.2d.sprite": {
"version": "1.0.0",
"depth": 0,
"source": "builtin",
"dependencies": {}
}
}

wechat依赖mainifest.json文件

1
2
3
"dependencies": {
"com.qq.weixin.minigame": "https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk"
}

wechat依赖packages.json文件

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"name": "com.qq.weixin.minigame",
"displayName": "WXSDK",
"description": "WeChat Mini Game Tuanjie Engine Adapter SDK Package.",
"version": "0.1.24",
"unity": "2019.4",
"unityRelease": "29f1",
"keywords": [
"Tuanjie",
"WX"
],
"dependencies": {}
}

UPM引入后移动位置

项目 mainifest.json文件

不包含 wechat依赖

1
2
3
4
5
6
7
8
9
10
  "dependencies": {
"com.unity.2d.sprite": "1.0.0",
"com.unity.2d.tilemap": "1.0.0",
"com.unity.ai.navigation": "1.1.5",
"com.unity.analytics": "3.8.1",
"com.unity.collab-proxy": "2.3.1",
"com.unity.ide.rider": "3.0.28",
"com.unity.ide.visualstudio": "2.0.22",
"com.unity.ide.vscode": "1.2.5",
}

项目 packages-lock.json文件

需要手动追加wechat 依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  "dependencies": {
"com.qq.weixin.minigame": {
"version": "file:com.qq.weixin.minigame@a5a5f32fbd",
"depth": 0,
"source": "embedded",
"dependencies": {}
},
"com.unity.2d.sprite": {
"version": "1.0.0",
"depth": 0,
"source": "builtin",
"dependencies": {}
}
}

wechat 依赖mainifest.json文件

1
2
3
"dependencies": {
"com.qq.weixin.minigame": "https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk"
}

wechat 依赖packages.json文件

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"name": "com.qq.weixin.minigame",
"displayName": "WXSDK",
"description": "WeChat Mini Game Tuanjie Engine Adapter SDK Package.",
"version": "0.1.24",
"unity": "2019.4",
"unityRelease": "29f1",
"keywords": [
"Tuanjie",
"WX"
],
"dependencies": {}
}

总结

手动移动 wx 依赖位置后,wx 依赖中的 mainifest.json文件和packages.json文件无需变更,但是项目中的mainifest.json文件和packages.json文件需要做相应调整

  • 标题: Unity 如何修改 UPM 导入的依赖
  • 作者: 77
  • 创建于 : 2025-02-20 11:44:24
  • 更新于 : 2025-02-20 14:43:49
  • 链接: https://www.jiaheqi.cloud/2025/02/20/Unity-如何修改-UPM-导入的依赖/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论