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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Poppy Sniper 3D Unity恐怖玩具狙击手游戏项目源码C# 支持Unity版本2020.3.18f1及以上 你有没有想过一款带有 Poppy Playtime 恐怖角色的全新狙击游戏?这不是像往常一样经典的捉迷藏游戏。这款恐怖玩具游戏结合了生存游戏、饼干挑战和恐怖玩具狙击手游戏时间。 你的任务很聪明,你需要狙击恐怖玩具、拥抱和亲吻!你不必再和波比捉迷藏了,必须不惜一切代价打败他。恐怖玩具狙击手有红灯绿灯、剪刀石头布射击、宝石、糖果等多种关卡和狙击技巧3D游戏。享受这款恐怖玩具狙击手游戏,并最终与大老板可怕的娃娃战斗。 Poppy Sniper 3D 恐怖游戏,一款带有一点恐怖元素的古老经典狙击游戏。不要逃跑并试图狙击Huggy Wuggy,因为如果他抓住你,他会挤压你直到你爆掉。 你和其他对手都是 Poppy。所有的战士都将在擂台上面对面交锋,每个人都将为自己而战!你的任务是淘汰所有对手,并成为竞技场上的最后一名!
资源推荐
资源详情
资源评论
收起资源包目录
Poppy Sniper 3D Unity恐怖玩具狙击手游戏项目源码C# (2001个子文件)
facebook-android-wrapper-11.0.0.aar 64KB
Die Backwards Fall.anim 1.07MB
Die Backwards Blocked.anim 891KB
Clip 1_Baked.anim 288KB
TextHelp.anim 5KB
ToonyColorsPro.Runtime.asmdef 545B
ToonyColorsPro.Editor.asmdef 391B
Template.Core.asmdef 29B
Slope.asset 2.36MB
TCP2_Demo Robot Kyle - VColors [TCP2 Smoothed].asset 1.46MB
Robot Kyle - Robot2_6854 [TCP2 Smoothed].asset 1.46MB
ProjectSettings.asset 22KB
NavMesh.asset 10KB
NavMesh.asset 10KB
InputManager.asset 10KB
Particle Plexus Post-Processing Profile.asset 7KB
Default Humanoid Puppet.asset 5KB
QualitySettings.asset 4KB
GraphicsSettings.asset 3KB
Physics2DSettings.asset 2KB
NavMeshAreas.asset 1KB
DynamicsManager.asset 1KB
FbxExportSettings.asset 1KB
PackageManagerSettings.asset 1003B
EditorSettings.asset 995B
UnityConnectSettings.asset 901B
PresetManager.asset 797B
FacebookSettings.asset 743B
EditorBuildSettings.asset 694B
AudioManager.asset 413B
TagManager.asset 412B
TimelineSettings.asset 411B
URPProjectSettings.asset 410B
VFXManager.asset 273B
TimeManager.asset 195B
VersionControlSettings.asset 188B
XRSettings.asset 158B
ClusterInputManager.asset 114B
sqlite3.c 5.25MB
TCP2 Hybrid URP Support.cginc 570KB
TCP2 Hybrid Include.cginc 39KB
TCP2_PBS_BRDF.cginc 14KB
TCP2_PBS_Core.cginc 8KB
TCP2_Include.cginc 7KB
TCP2_Outline_Include.cginc 5KB
TCP2_PBS_Main.cginc 3KB
Humanoid Third Person Puppet.controller 52KB
Humanoid Third Person.controller 33KB
Humanoid NavMeshAgent Puppet.controller 25KB
Humanoid Skeleton.controller 16KB
Humanoid Test Sequence.controller 11KB
Humanoid Strafing and Aiming (Baker).controller 9KB
Humanoid Strafing and Aiming.controller 9KB
Humanoid Puppet.controller 8KB
Humanoid Aiming System.controller 7KB
Humanoid Dying 2.controller 4KB
Humanoid Simple Locomotion.controller 3KB
Humanoid Viking.controller 3KB
Humanoid Falling.controller 3KB
Mine Bot.controller 3KB
Mech Bot.controller 3KB
Wolf.controller 3KB
Humanoid Dying.controller 3KB
Text (TMP).controller 2KB
Humanoid Swing Prop (Event).controller 2KB
Humanoid Swing Prop.controller 2KB
Humanoid Soccer Kick.controller 2KB
Humanoid Boxing.controller 2KB
Humanoid Baker Clip Sampler.controller 2KB
Humanoid Walking.controller 2KB
Humanoid Idle.controller 2KB
ShaderProperty.Implementations.cs 198KB
ShaderGenerator2.cs 120KB
ShaderProperty.cs 84KB
TCP2_GUI.cs 65KB
DoxygenManualPuppetMaster.cs 59KB
PuppetMaster.cs 54KB
Config.cs 53KB
Muscle.cs 48KB
CodeInjection.cs 39KB
UIFeatures.cs 38KB
BehaviourPuppet.cs 35KB
Template.cs 35KB
TCP2_MaterialInspector_PBS.cs 32KB
PuppetMasterHierarchyAPI.cs 32KB
SGUILayout.cs 30KB
MaterialInspector_Hybrid.cs 29KB
TCP2_ShaderGenerator.UIFeatures.cs 28KB
TCP2_ShaderGenerator.cs 27KB
TCP2_MaterialInspector_SurfacePBS_SG.cs 27KB
TCP2_MaterialInspector.cs 26KB
TCP2_ShaderGeneratorUtils.cs 26KB
TCP2_MaterialInspector_PBS_SG.cs 24KB
TCP2_Utils.cs 23KB
BipedReferences.cs 22KB
BakerUtilities.cs 21KB
RagdollEditorInspector.cs 20KB
PuppetMasterInspector.cs 20KB
Baker.cs 19KB
Serialization.cs 19KB
共 2001 条
- 1
- 2
- 3
- 4
- 5
- 6
- 21
资源评论
小云同志你好
- 粉丝: 1050
- 资源: 956
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功