External Dependency Manager for Unity
========
# Overview
The External Dependency Manager for Unity (EDM4U)
(formerly Play Services Resolver / Jar Resolver) is intended to be used by any
Unity plugin that requires:
* Android specific libraries (e.g
[AARs](https://developer.android.com/studio/projects/android-library.html)).
* iOS [CocoaPods](https://cocoapods.org/).
* Version management of transitive dependencies.
* Management of Package Manager (PM) Registries.
Updated releases are available on
[GitHub](https://github.com/googlesamples/unity-jar-resolver)
# Background
Many Unity plugins have dependencies upon Android specific libraries, iOS
CocoaPods, and sometimes have transitive dependencies upon other Unity plugins.
This causes the following problems:
* Integrating platform specific (e.g Android and iOS) libraries within a
Unity project can be complex and a burden on a Unity plugin maintainer.
* The process of resolving conflicting dependencies on platform specific
libraries is pushed to the developer attempting to use a Unity plugin.
The developer trying to use your plugin is very likely to give up when
faced with Android or iOS specific build errors.
* The process of resolving conflicting Unity plugins (due to shared Unity
plugin components) is pushed to the developer attempting to use your Unity
plugin. In an effort to resolve conflicts, the developer will very likely
attempt to resolve problems by deleting random files in your plugin,
report bugs when that doesn't work and finally give up.
EDM provides solutions for each of these problems.
## Android Dependency Management
The *Android Resolver* component of this plugin will download and integrate
Android library dependencies and handle any conflicts between plugins that share
the same dependencies.
Without the Android Resolver, typically Unity plugins bundle their AAR and
JAR dependencies, e.g. a Unity plugin `SomePlugin` that requires the Google
Play Games Android library would redistribute the library and its transitive
dependencies in the folder `SomePlugin/Android/`. When a user imports
`SomeOtherPlugin` that includes the same libraries (potentially at different
versions) in `SomeOtherPlugin/Android/`, the developer using `SomePlugin` and
`SomeOtherPlugin` will see an error when building for Android that can be hard
to interpret.
Using the Android Resolver to manage Android library dependencies:
* Solves Android library conflicts between plugins.
* Handles all of the various processing steps required to use Android
libraries (AARs, JARs) in Unity 4.x and above projects. Almost all
versions of Unity have - at best - partial support for AARs.
* (Experimental) Supports minification of included Java components without
exporting a project.
## iOS Dependency Management
The *iOS Resolver* component of this plugin integrates with
[CocoaPods](https://cocoapods.org/) to download and integrate iOS libraries
and frameworks into the Xcode project Unity generates when building for iOS.
Using CocoaPods allows multiple plugins to utilize shared components without
forcing developers to fix either duplicate or incompatible versions of
libraries included through multiple Unity plugins in their project.
## Package Manager Registry Setup
The [Package Manager](https://docs.unity3d.com/Manual/Packages.html)
(PM) makes use of [NPM](https://www.npmjs.com/) registry servers for package
hosting and provides ways to discover, install, upgrade and uninstall packages.
This makes it easier for developers to manage plugins within their projects.
However, installing additional package registries requires a few manual steps
that can potentially be error prone. The *Package Manager Resolver*
component of this plugin integrates with
[PM](https://docs.unity3d.com/Manual/Packages.html) to provide a way to
auto-install PM package registries when a `.unitypackage` is installed which
allows plugin maintainers to ship a `.unitypackage` that can provide access
to their own PM registry server to make it easier for developers to
manage their plugins.
## Unity Plugin Version Management
Finally, the *Version Handler* component of this plugin simplifies the process
of managing transitive dependencies of Unity plugins and each plugin's upgrade
process.
For example, without the Version Handler plugin, if:
* Unity plugin `SomePlugin` includes `EDM4U` plugin at
version 1.1.
* Unity plugin `SomeOtherPlugin` includes `EDM4U`
plugin at version 1.2.
The version of `EDM4U` included in the developer's project depends upon the
order the developer imports `SomePlugin` or `SomeOtherPlugin`.
This results in:
* `EDM4U` at version 1.2, if `SomePlugin` is imported then `SomeOtherPlugin`
is imported.
* `EDM4U` at version 1.1, if `SomeOtherPlugin` is imported then
`SomePlugin` is imported.
The Version Handler solves the problem of managing transitive dependencies by:
* Specifying a set of packaging requirements that enable a plugin at
different versions to be imported into a Unity project.
* Providing activation logic that selects the latest version of a plugin
within a project.
When using the Version Handler to manage `EDM4U` included in `SomePlugin` and
`SomeOtherPlugin`, from the prior example, version 1.2 will always be the
version activated in a developer's Unity project.
Plugin creators are encouraged to adopt this library to ease integration for
their customers. For more information about integrating EDM4U
into your own plugin, see the [Plugin Redistribution](#plugin-redistribution)
section of this document.
# Analytics
The External Dependency Manager for Unity plugin by default logs usage to Google
Analytics. The purpose of the logging is to quantitatively measure the usage of
functionality, to gather reports on integration failures and to inform future
improvements to the developer experience of the External Dependency Manager
plugin. Note that the analytics collected are limited to the scope of the EDM4U
plugin’s usage.
For details of what is logged, please refer to the usage of
`EditorMeasurement.Report()` in the source code.
# Requirements
The *Android Resolver* and *iOS Resolver* components of the plugin only work
with Unity version 4.6.8 or higher.
The *Version Handler* component only works with Unity 5.x or higher as it
depends upon the `PluginImporter` UnityEditor API.
The *Package Manager Resolver* component only works with
Unity 2018.4 or above, when
[scoped registry](https://docs.unity3d.com/Manual/upm-scoped.html)
support was added to the Package Manager.
# Getting Started
Before you import EDM4U into your plugin project, you first
need to consider whether you intend to *redistribute* `EDM4U`
along with your own plugin.
## Plugin Redistribution
If you're a plugin maintainer, redistributing `EDM4U` inside your own plugin
will ease the integration process for your users, by resolving dependency
conflicts between your plugin and other plugins in a user's project.
If you wish to redistribute `EDM4U` inside your plugin,
you **must** follow these steps when importing the
`external-dependency-manager-*.unitypackage`, and when exporting your own plugin
package:
1. Import the `external-dependency-manager-*.unitypackage` into your plugin
project by
[running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html), ensuring that
you add the `-gvh_disable` option.
1. Export your plugin by [running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html), ensuring that
you:
- Include the contents of the `Assets/PlayServicesResolver` and
`Assets/ExternalDependencyManager` directory.
- Add the `-gvh_disable` option.
You **must** specify the `-gvh_disable` option in order for the Version
Handler to work correctly!
For example, the following command will
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
City Police Simulation – Open World Drive Game 城市警察模拟 - Unity开放世界驾驶游戏项目源码C# 支持Unity版本2020.3.30f1及以上 你准备好加入城市警察模拟 3d – 智能汽车游戏了吗?如果是,那么您的方向是正确的。您将驾驶您最喜欢的警车并将乘客送到指定地点。 和我一起探索这种沉浸式 3D 体验的错综复杂,探索其游戏机制、高速追逐,以及使这款游戏在游戏领域脱颖而出的兴奋与责任的独特融合。 警用客车驾驶游戏 3D 将玩家带入一个动态的 3D 世界,街道充满生机,执法人员的职责也变得栩栩如生。 控制方式直观,让玩家能够掌握警车的复杂操控,同时又不失高速追击的刺激感。从追捕罪犯到护送贵宾,游戏中多样化的场景让玩家保持专注并保持警惕。 车辆模型对细节的关注增强了整体沉浸感,让玩家感觉自己真正坐在警用巡洋舰的方向盘后面。 描述 准备在 Android 和 iOS 上发布 警车司机模拟游戏的高质量模板。 在应用程序内购买 Admob 横幅/插页式/奖励 开放世界地图 高品质警车 警灯 不同的使命 小地图 伟大的汽车物理学 特征
资源推荐
资源详情
资源评论
收起资源包目录
City Police Simulation Open World 城市警察模拟Unity开放世界驾驶游戏项目源码C# (2000个子文件)
Panel Rotation.anim 5KB
Spinner.anim 4KB
TextAnimation.anim 3KB
com.OctopusStudio.PoliceOpenWorld.apk 92.58MB
GoogleMobileAds.Editor.asmdef 415B
CityTerrain.asset 7.35MB
NavMesh.asset 101KB
NavMesh.asset 101KB
NavMesh.asset 101KB
ProjectSettings.asset 68KB
InputManager.asset 6KB
QualitySettings.asset 5KB
TagManager.asset 4KB
UnityConnectSettings.asset 4KB
NavMeshAreas.asset 4KB
GraphicsSettings.asset 4KB
Physics2DSettings.asset 4KB
DynamicsManager.asset 4KB
GoogleMobileAdsSettings.asset 4KB
EditorSettings.asset 4KB
EditorBuildSettings.asset 4KB
AudioManager.asset 4KB
TimeManager.asset 4KB
NetworkManager.asset 4KB
ClusterInputManager.asset 4KB
Post-process Volume Profile.asset 1KB
PackageManagerSettings.asset 1003B
TimelineSettings.asset 411B
VFXManager.asset 308B
VersionControlSettings.asset 188B
XRSettings.asset 158B
PresetManager.asset 146B
Body.bmp 12MB
BodyWhite.bmp 12MB
Body.bmp 12MB
Body.bmp 12MB
Body.bmp 12MB
BodyRed.bmp 12MB
BodyBlack.bmp 12MB
BodyYellow.bmp 12MB
TrafficLight.bmp 768KB
On body.bmp 768KB
wheel.bmp 768KB
wheel.bmp 768KB
wheel.bmp 768KB
wheel.bmp 768KB
Wheel.bmp 768KB
Police.bmp 192KB
tex-11.bmp 192KB
tex-27.bmp 192KB
tex-10.bmp 192KB
tex-22.bmp 192KB
Texture 87.bmp 192KB
Texture 73.bmp 192KB
Texture 182.bmp 192KB
Texture 31.bmp 192KB
Texture 137.bmp 192KB
Texture 164.bmp 192KB
Texture 114.bmp 192KB
Texture 29.bmp 192KB
Texture 88.bmp 192KB
Texture 200.bmp 192KB
Texture 35.bmp 192KB
Texture 104.bmp 192KB
Texture 86.bmp 192KB
Texture 135.bmp 192KB
Texture 103.bmp 192KB
tex-24.bmp 96KB
tex-25.bmp 96KB
tex-23.bmp 96KB
Texture 43.bmp 96KB
Texture 24.bmp 96KB
Texture 91.bmp 96KB
Texture 116.bmp 96KB
Taxi.bmp 48KB
tex-16.bmp 48KB
tex-6.bmp 48KB
tex-20.bmp 48KB
tex-9.bmp 48KB
tex-17.bmp 48KB
tex-2.bmp 48KB
tex-7.bmp 48KB
Texture 101.bmp 48KB
Texture 147.bmp 48KB
Texture 62.bmp 48KB
Texture 52.bmp 48KB
Texture 61.bmp 48KB
Texture 140.bmp 48KB
Texture 107.bmp 48KB
Texture 51.bmp 48KB
Texture 66.bmp 48KB
Texture 6.bmp 48KB
Texture 119.bmp 48KB
Texture 153.bmp 48KB
Texture 171.bmp 48KB
Texture 48.bmp 48KB
Texture 67.bmp 48KB
Texture 32.bmp 48KB
Texture 141.bmp 48KB
Texture 198.bmp 48KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
- vipra2024-06-09简直是宝藏资源,实用价值很高,支持!
小云同志你好
- 粉丝: 1065
- 资源: 1061
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Vue的高性能售票系统.zip
- (源码)基于Windows API的USB设备通信系统.zip
- (源码)基于Spring Boot框架的进销存管理系统.zip
- (源码)基于Java和JavaFX的学生管理系统.zip
- (源码)基于C语言和Easyx库的内存分配模拟系统.zip
- (源码)基于WPF和EdgeTTS的桌宠插件系统.zip
- (源码)基于PonyText的文本排版与预处理系统.zip
- joi_240913_8.8.0_73327_share-2EM46K.apk
- Library-rl78g15-fpb-1.2.1.zip
- llvm-17.0.1.202406-rl78-elf.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功