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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Deep Sea Fishing Mania 深海钓鱼狂热Unity企鹅钓鱼游戏项目源码C# 支持Unity版本2020.3.48f1及以上 商品描述 这是一个阳光明媚的日子,我们的小朋友快乐企鹅决定去钓鱼,把可爱的海洋动物和鱼类放进他的小水族箱里——快来体验快乐吧! 但是,请记住,您不是在钓鱼——它们非常强壮,会折断您的鱼竿!在这款免费钓鱼游戏中享受钓鱼的最佳时光! 在现实主义和刺激的十字路口,“深海钓鱼狂热”邀请玩家踏上超越传统钓鱼游戏的海洋冒险之旅。 该游戏以深海为背景,让玩家沉浸在视觉上令人惊叹的动态环境中,追求最大和最奇异的渔获成为最终目标。 特征 AdMob 和 Unity 广告集成 综合费率 简单的控制和超酷的游戏玩法,玩起来很有趣! 2种游戏模式:竿钓鱼和网钓鱼! 20种不同类型的鱼,包括小丑鱼、河豚鱼、金枪鱼、海星、海马、金鱼等等! 无尽的游戏玩法:无限的关卡,鱼越来越多! 充满惊喜的宝箱:您可以赢得额外的金币、更多的钓鱼时间或令人讨厌的惊喜!
资源推荐
资源详情
资源评论
收起资源包目录
Deep Sea Fishing Mania 深海钓鱼狂热Unity企鹅钓鱼游戏项目源码C# (1158个子文件)
com.applovin.applovin-sdk-12.1.0.aar 3.23MB
androidx.core.core-1.2.0.aar 690KB
com.google.android.gms.play-services-base-17.6.0.aar 515KB
com.google.android.gms.play-services-basement-17.6.0.aar 325KB
androidx.fragment.fragment-1.0.0.aar 153KB
applovin-max-unity-plugin.aar 76KB
com.google.android.gms.play-services-appset-16.0.0.aar 54KB
androidx.viewpager.viewpager-1.0.0.aar 52KB
androidx.coordinatorlayout.coordinatorlayout-1.0.0.aar 43KB
com.google.android.gms.play-services-tasks-17.2.1.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.1.0.aar 30KB
androidx.slidingpanelayout.slidingpanelayout-1.0.0.aar 23KB
com.google.android.gms.play-services-ads-identifier-17.1.0.aar 20KB
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
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
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
GameplpaySceneAnimation.anim 2.08MB
GamePlayScene2Animation.anim 1.66MB
OctopusSwim.anim 701KB
TabButtonIdleNew.anim 476KB
TabButtonIdle.anim 476KB
PopUpInterstitialIdle.anim 338KB
MantisShrimpCaughtAnimation.anim 268KB
MantisShrimpSwimmingAnimation.anim 266KB
PenguinHappy.anim 187KB
OctopusCatch.anim 147KB
PenguinFishCaughtAnimation.anim 134KB
SeaHorseCaught.anim 114KB
SeaHorseSwimming.anim 112KB
PenguinIdle.anim 103KB
DailyRewardDay.anim 88KB
FishAnimation.anim 80KB
PenguinSad.anim 76KB
OpenTimeChest.anim 66KB
PenguinFishMissedAnimation.anim 60KB
PenguinFishingAnimation.anim 57KB
OpenGoldChest.anim 57KB
PenguinFishingNetAnimation.anim 52KB
WinArriving.anim 48KB
PenguinInk.anim 46KB
SeaStarCaughtAnimation.anim 45KB
SeaStarAnimation.anim 43KB
PopupLevelCompletedBodyIdle.anim 39KB
Ink.anim 39KB
PopupRateBodyIdle.anim 37KB
PopupDailyBodyIdle.anim 37KB
DailyRewardIdle.anim 37KB
Open_EmptyChest.anim 29KB
PopupRateBodyArrival.anim 25KB
Glow.anim 25KB
LeftRightClean.anim 24KB
move.anim 24KB
PopUpInterstitialArriving.anim 21KB
PenguinFishingIdle.anim 21KB
PopupLevelCompletedBodyArrival.anim 19KB
MopClean.anim 19KB
DailyRewardDeparting.anim 19KB
UpDownClean.anim 19KB
moveEnd.anim 19KB
MainMenuClose.anim 19KB
DusterClean.anim 18KB
BroomClean.anim 17KB
RollerBrushPaint.anim 17KB
PopupDailyRewardBody.anim 17KB
InkAnimation.anim 16KB
default.anim 16KB
PopUpDialoglArriving.anim 15KB
OpenEmptyChest.anim 15KB
PopUpMessageArriving.anim 15KB
FishCaughtAnimation.anim 15KB
MeniEmpty.anim 14KB
swim_empty.anim 14KB
DailyRewardArrival.anim 14KB
LoadingRotate.anim 13KB
glowRot.anim 13KB
swim_chest.anim 13KB
TimerBlink.anim 13KB
MainMenuOpen.anim 13KB
CrumbsCleaner.anim 12KB
default.anim 12KB
swimming.anim 12KB
AnimBG.anim 12KB
SharkSwimmNormal.anim 12KB
WateringCan.anim 12KB
GardenShears.anim 12KB
Rake.anim 11KB
共 1158 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
小云同志你好
- 粉丝: 1065
- 资源: 1061
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功