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 you 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` 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 import the
`external-dependency-manager-1.2.46.0
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
滑板冲撞者 支持Unity2020.3.18f1及以上版本 一款休闲益智游戏,你必须安全地落入其中。它看似简单,实则深刻。畅玩广泛的关卡,在享受乐趣的同时磨练你的智慧。 速度感、风的急速感以及在具有挑战性的路线中航行时令人心跳加速的兴奋感结合在一起,创造出无与伦比的虚拟滑板体验。 因其极其逼真的碰撞模拟而脱颖而出。游戏不会回避不合时宜的跳跃、急转弯或大胆特技 加速过程中重力的结合增加了一层物理性,加深了玩家和数字滑板之间的联系。 从选择滑板的款式到选择完美的服装,玩家可以在数字领域表达自己的个性。 随着玩家在游戏中取得进展,他们会解锁新的棋盘、装备和位置,从而获得成就感和持续的精通动力 50 个关卡 皮肤选择店 Admob 横幅广告和插页式广告 |Unity 广告 启动画面 准备发布
资源推荐
资源详情
资源评论
收起资源包目录
Longboard Crasher 滑板冲撞者Unity滑板竞速小游戏项目源码 (2000个子文件)
com.google.android.gms.play-services-ads-19.3.0.aar 2.73MB
com.google.android.gms.play-services-ads-lite-19.3.0.aar 850KB
androidx.core.core-1.0.0.aar 618KB
com.google.android.gms.play-services-basement-17.0.0.aar 271KB
com.google.android.gms.play-services-measurement-base-17.1.0.aar 221KB
com.google.android.gms.play-services-gass-19.3.0.aar 165KB
androidx.fragment.fragment-1.0.0.aar 153KB
googlemobileads-unity.aar 77KB
androidx.browser.browser-1.0.0.aar 61KB
androidx.viewpager.viewpager-1.0.0.aar 52KB
androidx.coordinatorlayout.coordinatorlayout-1.0.0.aar 43KB
com.google.android.gms.play-services-measurement-sdk-api-17.1.0.aar 42KB
com.google.android.gms.play-services-tasks-17.0.0.aar 39KB
androidx.loader.loader-1.0.0.aar 33KB
androidx.customview.customview-1.0.0.aar 32KB
androidx.swiperefreshlayout.swiperefreshlayout-1.0.0.aar 32KB
androidx.drawerlayout.drawerlayout-1.0.0.aar 32KB
androidx.versionedparcelable.versionedparcelable-1.0.0.aar 27KB
androidx.slidingpanelayout.slidingpanelayout-1.0.0.aar 23KB
com.google.android.gms.play-services-ads-identifier-17.0.0.aar 17KB
androidx.print.print-1.0.0.aar 15KB
androidx.legacy.legacy-support-core-ui-1.0.0.aar 11KB
androidx.documentfile.documentfile-1.0.0.aar 11KB
NativeShare.aar 11KB
androidx.cursoradapter.cursoradapter-1.0.0.aar 10KB
androidx.lifecycle.lifecycle-livedata-2.0.0.aar 9KB
androidx.lifecycle.lifecycle-runtime-2.0.0.aar 9KB
androidx.lifecycle.lifecycle-livedata-core-2.0.0.aar 8KB
com.google.android.gms.play-services-ads-base-19.3.0.aar 8KB
androidx.asynclayoutinflater.asynclayoutinflater-1.0.0.aar 8KB
androidx.interpolator.interpolator-1.0.0.aar 7KB
androidx.localbroadcastmanager.localbroadcastmanager-1.0.0.aar 7KB
androidx.lifecycle.lifecycle-viewmodel-2.0.0.aar 7KB
androidx.arch.core.core-runtime-2.0.0.aar 5KB
androidx.legacy.legacy-support-core-utils-1.0.0.aar 4KB
Android_2022_03_13_07_02_57.ahbuildinfo 107KB
Android_2020_11_13_05_34_20.ahbuildinfo 44KB
SimpleInput.Editor.asmdef 383B
PathCreatorEditor.asmdef 350B
GoogleMobileAds.Editor.asmdef 172B
GoogleMobileAds.asmdef 112B
SimpleInput.Runtime.asmdef 41B
PathCreator.asmdef 30B
ProjectSettings.asset 21KB
QualitySettings.asset 6KB
EditorUserBuildSettings.asset 6KB
InputManager.asset 6KB
GraphicsSettings.asset 2KB
Physics2DSettings.asset 1KB
PackageManagerSettings.asset 1KB
NavMeshAreas.asset 1KB
GlobalDisplaySettings.asset 1KB
DynamicsManager.asset 1KB
UnityConnectSettings.asset 901B
PresetManager.asset 824B
EditorSettings.asset 643B
EditorBuildSettings.asset 627B
GoogleMobileAdsSettings.asset 563B
TagManager.asset 440B
AudioManager.asset 377B
VFXManager.asset 273B
TimeManager.asset 195B
VersionControlSettings.asset 188B
NetworkManager.asset 159B
ClusterInputManager.asset 120B
d1bdea93c33f233818d04fdbee3a9020.bin 27KB
df9bf38716a2ef86077834dccb4a2561.bin 15KB
db0fa8f6b89357392239f26c8d7dee87.bin 12KB
dfec7783ef9e4491f0584b42940bb193.bin 12KB
d8cb06989914378ecb2a3608beb44ac1.bin 12KB
dfdc39b53f42482bc1e46b1b55c7c248.bin 11KB
d1ed5886bae7a44a81da1b686babac30.bin 11KB
dd9ce0039b3dcfc3a2663cbb2844775e.bin 11KB
d68cfb6a00f5778378b072c7f6efd48b.bin 11KB
d6fc2489007238a393ac144b2d6441bc.bin 11KB
d2db9283bcd3ad0be28807a74fffc2e0.bin 11KB
d88f7b3c47107fb2105e2a26e8d38692.bin 10KB
d0ee00d963322fc9dedcf8a355d22ffd.bin 10KB
dd350e28ce97740ca866b0e53561486c.bin 10KB
d5b063f7f1f6122d7d950996c93b8186.bin 10KB
dbb2ceb7ec1596806751352878c5847f.bin 10KB
dc6c1260bc27d273a30b543a35fcc3ef.bin 10KB
d025503478411b4939f3bb0c0e253de1.bin 10KB
dfd3be1b6b0c1db632df54705b10132a.bin 10KB
d5bee6417d993a7015745ada213a642e.bin 9KB
dc747c33b817865c6b763748dce902e1.bin 8KB
d7fe10a723aac6af38f13577d4aab9aa.bin 8KB
d4f47286ac7de090a8c33a961eeb4e18.bin 8KB
daeb67469e50b40f658ea73ee5f6c036.bin 8KB
da5a0f472dc317078bc480cc2e968c8a.bin 8KB
d021504a66624ede18e6ee4fa51304eb.bin 8KB
d4f9a324ed9ce8ba1378c42280d5a1ff.bin 7KB
d1faf7bd1bcc3a1b5d6f584a16eccaec.bin 7KB
d6cf185c658bf06e8cceaee32a54b479.bin 7KB
de6b626410103ba1801865ef36d08625.bin 7KB
d2e9c4074223e976f8d31135f0c1eeda.bin 7KB
d3d5af873257f632e809e178a7408c68.bin 6KB
d6e62c0f477885eb9041754092fb5250.bin 6KB
d9101e0ac6b4cda6626153886d646297.bin 6KB
de38fe4aa91b4ee6a790140baab3a7f1.bin 6KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
小云同志你好
- 粉丝: 1067
- 资源: 1067
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MP3设计原理图与PCB
- 双驱双向潜伏式AGV小车3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- 基于java+springboot+mysql+微信小程序的员工日志管理信息系统 源码+数据库+论文(高分毕业设计).zip
- 720n op打印服务器插件三个用
- 双向变距机构3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- HuggingFace tokenizer基本使用及示例展示
- 基于扰动观测器的永磁同步电机(PMSM)模型预测控制(MPC)仿真,速度外环基于模型预测控制、电流内环基于无差拿控制搭建,控制效果理想,模块程序设计通俗易通,送参考文献,方便学习理解
- 计算机二级考试全攻略(含试题)
- AIGC基础知识及应用畅想分享
- 《四维虚拟导管:二尖瓣主动脉疾病主动脉内血流动力学的无创评估》matlab代码.rar
- AM的平方律调制解调方案 matlab代码.rar
- AHRS(航姿算法)的Matlab程序.rar
- DeepRLPID,利用深度强化学习算法对飞机俯仰PID控制器进行自适应调整Matlab代码.rar
- HVAC_RL,暖通空调控制器的强化学习Matlab实现.rar
- AUV MatLab的强化学习QLearning自调谐PID控制器.rar
- matalb求解化工中热量传递的一个实际问题.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功