Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
SimonDarksideJ's avatar
2 years ago

Unable to create URP projects using the new Meta UPM Packages

In the days of the Integration SDK, it was possible to upgrade all the materials using the Unity Built-IN to URP converters.  It was frustrating as this had to be repeated every time you upgraded the package, but it was manageable.

 

However, with the move to the newer UPM package delivery, the materials are all read-only due to the nature of UPM packages, and thus cannot be upgraded, making UPM built projects (which I prefer) can only be built with the legacy "built-in" pipeline.

Could we have a variant of the XR.Utilities Package (or preferably move the materials to the Standard assets package and have two variants there) for BI-RP and URP, please.

I did try just copying the package to a project, but due to the nature of URP, but due to the nature of UPM, that did not work. 
Moving the package to the Unity projects "Packages" folder did work, but then creates an upgrade issue again.

 

Ideally, the UPM packages need to support a maintainable path for URP and non-URP pipelines (although just URP would like be preferred for the new UPM method)

3 Replies

Replies have been turned off for this discussion
  • jbienzss's avatar
    jbienzss
    Honored Guest

    This is a very good point about read-only assets in UPM packages. One potential workaround is to pack URP versions of these assets into one .unitypackage and pack Classic versions of these assets into another .unitypakcage. Then both unitypackages get included in the UPM package. On the target machine you can either detect what pipeline the project is set to or you can provide a menu option to switch between assets. The code then calls AssetDatabase.ImportPackage to unpack the corresponding .unitypackage into the target project. This does mean that these resources become part of the target project and could therefore become modified or out of date. But there could be another menu item called something like "Restore Materials" that just calls AssetDatabase.ImportPackage again to overwrite any changes made in the target project.

    • SimonDarksideJ's avatar
      SimonDarksideJ
      Protege

      OK, Re-read what you said as I did initially misunderstand.  Having two separate .unityPackages bundled with the UPM packages would be a great idea.

      It just needs Meta to step up and implement that now.

  • It would be far better if the materials and textures used by the Meta UPM packages were in their own package, with two varients using the same .meta files (iD's), one for BiRP and one for URP, then you can simply install the version you wish to use for your render pipeline without affecting all the other packages.

    .UnityPackages are a bit ancient.

    Another alternative would simply be to COPY the Texture, Shader and Material assets from a hidden folder in the package into the Projects Assets folder under the existing Oculus folder (used for the platform config), then users could upgrade the assets themselves.

    Either path would work, although the second option would require far less maintenance for the Meta team.