firebase / firebase-unity-sdk

The Firebase SDK for Unity
http://firebase.google.com
Apache License 2.0
201 stars 33 forks source link

[FR]: Unity Package Manager git support (again) #1057

Open calumma-robert opened 4 days ago

calumma-robert commented 4 days ago

Description

A lot of Google Unity Packages are already (and again) available as a Unity Package Manger git package, like the Google Play Plugins, Google Mobile Ads, etc.

It would just make the integration smoother and also reduces overall footprints on the internet (as i.e. the packages don't need to be checked in) and only downloaded and cached if needed by Unity.

API Proposal

No response

Firebase Product(s)

All

Targeted Platform(s)

Apple Platforms, Android, Desktop

argzdev commented 3 days ago

Hi @calumma-robert, thanks for filing this feature request. However, It seems unclear to me how this would relate to Firebase. Could you share a bit more details? If however, this is not intended for Firebase, please reach out to proper communication channels. In this case, features for Unity would be better reported to the Unity forums.

calumma-robert commented 3 days ago

Hey @argzdev, sure let me explain!

Currently to install any of the firebase packages to Unity it must be installed directly via the firebase package's .unitypackage file, or by importing it as a local dependency within Unity's Package Manager (UPM) by referencing the downloaded .tgz file of the needed firebase package.

However, most of Google's packages, has already moved to a git-style package, i.e. 'com.google.external-dependency-manager' (which is a dependency of all firebase packages also).

The EDM can simply be installed by adding directly it's git url (+path to the package.json) inside the UPM like this: https://github.com/googlesamples/unity-jar-resolver.git?path=upm

Integrating it like that, also makes the update process for end-users easier, as you can just press Update within Unity and it will check git for any updates. Additionally, manually downloading the .unitypackage/.tgz is no longer required and the unity project itself is also way cleaner (as it is not saved inside Assets/, and just cached inside Library/...)

With that, each package.json of any firebase package can also easily reference another firebase package as a dependecv, removing the need to bundle all dependencies together (as you have it currently with the .unitypackage approach)

argzdev commented 3 days ago

Thank you for the well detailed explanation, @calumma-robert. This does sound like a feature we should be doing. That said, while I'm unable to provide a timeline when we'll be able to add this to the roadmap, I'll bring this up to our engineering team for discussion.