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` 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 i
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Zombie City 僵尸城Unity迷你闯关射击游戏项目源码C# 支持Unity版本2021.3.0f1或更高 描述 Zombie City 是一个完整的项目模板,将帮助您创建射击超休闲游戏。您只需要更改图形、模型、添加更多关卡、替换广告键即可在 Google Play 或应用商店中发布好游戏。该项目使用Unity新版本(2021.3),因此您的项目具有最高的性能和功能 特征 64位架构 超休闲游戏风格 10 个不同的关卡和循环(添加更多关卡非常容易,我们创建了一个指南视频) Admob(横幅、插页式广告、奖励视频) Firebase Analytics(您只需替换 .plist 或 .json 文件即可处理您的帐户) 3D 低多边形图形(适合超休闲游戏并且在移动设备中具有良好的性能) 轻松替换项目中的 3D 模型(我们创建了公会视频来重新设计角色或关卡对象) 在 Android 或 IOS 上运行良好(已测试) 由新版本Unity(Unity 2021.3)制作
资源推荐
资源详情
资源评论
收起资源包目录
Zombie City 僵尸城Unity迷你闯关射击游戏项目源码C# (2010个子文件)
Ready.anim 7KB
Money.anim 6KB
Post-Processing Profile.asset 26KB
ProjectSettings.asset 23KB
LightingData.asset 18KB
QualitySettings.asset 7KB
InputManager.asset 6KB
GraphicsSettings.asset 2KB
Physics2DSettings.asset 2KB
DynamicsManager.asset 1KB
NavMeshAreas.asset 1KB
EditorSettings.asset 1KB
MemorySettings.asset 1KB
UnityConnectSettings.asset 962B
PackageManagerSettings.asset 928B
TagManager.asset 458B
AudioManager.asset 416B
VFXManager.asset 308B
EditorBuildSettings.asset 250B
TimeManager.asset 202B
VersionControlSettings.asset 188B
XRSettings.asset 158B
PresetManager.asset 146B
ClusterInputManager.asset 114B
boot.config 0B
MoneyStash.controller 2KB
Mask.controller 2KB
FlyCameraBehaviour.cs 2KB
TCP2_Atlas.css 9KB
TCP2_Documentation.css 7KB
Zombie City Game Template.docx 2.29MB
.DS_Store 18KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
combined_assets_1.fbx 3.9MB
SM_Bld_Apartments_Block_02.fbx 154KB
SM_Bld_Apartments_Block_01.fbx 134KB
pistol_2.fbx 107KB
SM_Veh_Truck_01.fbx 96KB
machine_gun_3.fbx 92KB
machine_gun_6.fbx 80KB
shotgun_2.fbx 76KB
submachine_gun_3.fbx 71KB
SM_Veh_Firetruck_01.fbx 69KB
machine_gun_5.fbx 62KB
machine_gun_4.fbx 61KB
SM_Bld_Apartments_01.fbx 59KB
machine_gun_1.fbx 58KB
SM_Veh_SchoolBus_01.fbx 55KB
pistol_1.fbx 55KB
SM_Bld_Apartments_04.fbx 55KB
submachine_gun_2.fbx 55KB
SM_Bld_OfficeOctagon_01.fbx 55KB
machine_gun_2.fbx 54KB
SM_Veh_Pickup_01.fbx 54KB
rifle_1.fbx 54KB
submachine_gun_4.fbx 52KB
SM_Veh_Car_Ambo_01.fbx 52KB
SM_Veh_Bus_01.fbx 52KB
SM_Veh_Car_Muscle_01.fbx 52KB
SM_Bld_Apartments_03.fbx 51KB
pistol_3.fbx 51KB
SM_Veh_Car_Police_01.fbx 51KB
SM_Veh_Car_Medium_01.fbx 50KB
SM_Bld_Apartments_02.fbx 50KB
SM_Prop_Billboard_Base_01.fbx 50KB
SM_Veh_Car_Small_01.fbx 49KB
SM_Veh_Car_Taxi_01.fbx 49KB
SM_Veh_Car_Van_01.fbx 49KB
SM_Veh_Convertable_01.fbx 48KB
SM_Bld_House_11.fbx 48KB
SM_Veh_Car_Sedan_01.fbx 48KB
rocket_launcher_1.fbx 48KB
SM_Bld_Church_01.fbx 47KB
SM_Bld_OfficeOld_Large_01.fbx 45KB
submachine_gun_1.fbx 44KB
rifle_3.fbx 43KB
submachine_gun_5.fbx 43KB
scope_2.fbx 42KB
SM_Bld_CityHall_01.fbx 41KB
SM_Bld_House_10.fbx 41KB
SM_Bld_OfficeSquare_01.fbx 40KB
SM_Env_WallPark_Corner_02.fbx 40KB
scope_5.fbx 40KB
scope_4.fbx 40KB
SM_Env_WallPark_Corner_01.fbx 39KB
SM_Bld_House_08.fbx 37KB
SM_Bld_OfficeOld_Small_01.fbx 37KB
shotgun_3.fbx 37KB
SM_Bld_House_07.fbx 37KB
rifle_2.fbx 36KB
shotgun_1.fbx 36KB
SM_Bld_House_03.fbx 36KB
共 2010 条
- 1
- 2
- 3
- 4
- 5
- 6
- 21
资源评论
- wolfoo5412024-05-30这个资源对我启发很大,受益匪浅,学到了很多,谢谢分享~
小云同志你好
- 粉丝: 1051
- 资源: 1026
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功