Asset Variants View on Asset Store (opens in new tab)

Package details

Latest version
2.1.1.2
Last updated
First released
Unity version
2020.2.0 or later
Package size
5.9 MB
Files
290
Favorites
26
Views in the past week
9

Price tracking

Last checked
Tracked since
Lowest recorded
$13.50 on

Keywords

Asset Variants

by Manamongods (opens in new tab)

4.0 / 5 · 3 ratings

Ratings by stars
Number of ratings for each star rating
5 stars 1
4 stars 1
3 stars 1
2 stars 0
1 star 0

Asset Variants brings prefab-like inheritance to (almost) any asset, such as ScriptableObjects and Materials, removing a burden variation can give to your workflow.

Price $15.00

Buy on Asset Store (opens in new tab)

Affiliate link · Purchases support this site

Price history

Last 6 months

USD
Price history for Asset Variants, 6 months Current $15.00; lowest $15.00; highest $15.00 in this period. $0 $10 $20 Jun Jul Aug Sep Oct Nov

Asset preview

1 / 8

Asset Variants screenshot 1

Asset Variants screenshot 1

About this asset

Features:

  • Variants for (the SerializedProperties of):

ScriptableObjects (for example TextMesh Pro assets),

Materials (even in versions older than Unity 2022.1),

TextureImporters, ModelImporters, PhysicsMaterials, AnimationClip, ...

Etc. (almost any asset type)

  • Support for Odin serialized properties.
  • Allows Lists/Arrays/delimited strings to be treated as if they are Dictionaries/HashSets.
  • Assigning a parent asset will automatically create overrides from differences.
  • Support for IMGUI and UIElements inspectors (including custom ones), as well as Odin Inspector.
  • Easy to use control over the specific scope of an override.
  • Revert/Apply to Parent/Create Override/Create Override Keep Children/Clean Up Overrides/etc. context menu items.
  • Support for any type of parent asset (polymorphic or even entirely unrelated types are allowed). Any shared SerializedProperty path names will be considered. (A matching path Vector4 field and Vector2 field for parent/child or child/parent will copy the x and y fields, ignoring the z and w of the Vector4).
  • [FormerlySerializedAs(oldName)] will be checked in order to rename overrides.
  • Settings to customize the user interface and behaviour in general.
  • Full source code.

From the publisher's Asset Store listing.

Technical details

Requirements & Limitations:

  • The data that can be inherited and overridden are only SerializedProperties (and InspectorProperties in Odin's case). It can't for example copy underlying texture data.
  • Prior usage of AssetImporter.userData will need to switch over to SharedUserDataUtility.GetUserData()/SetUserData(). A copy of SharedUserDataUtility can be found at: https://github.com/Steffenvy/SharedUserDataUtility

Please note:

  • The code is dependent on the internal Unity API. For betas or new releases, this might require an update to become functional again.
  • A SerializedProperty that works well with a variant system and a SerializedProperty that does not, can be indistinguishable from each other to anything except a human that rationalizes the purpose of the property. Asset Variants by default allows any* asset to be a parent/child and almost any* property to be copied from parent to child (given that it's not overridden). (*some blacklistings have already been made). Ones that are problematic should be blacklisted, and I alone can't find all of them, especially for third party assets I do not own, and possibly as well for built-in asset types whose behaviour as a variant only becomes problematic when used in a highly complex environment that is infeasible for me to fabricate.

If you assign a parent to an asset and it begins exhibiting improper behaviour, please contact me at [email protected], or if you're the developer of a third party ScriptableObject type, I would be very grateful if you would create the blacklistings directly in your own asset, in a preprocessor block.

Compatibility

Render pipelines supported in each Unity version
Unity version Built-in URP HDRP Custom
2020.2.0f1 Compatible Compatible Compatible Compatible

As listed on the Asset Store.