There’s an internal ISubAssetNotDuplicatable interface that Unity uses internally to prevent copying and duplicating certain subasset types in the ProjectView.
I’ve never ever had the need to duplicate any subassets in the Project View. Duplicating a subasset creates a new independant asset, and most subassets are meant to be used as subassets only. It’s easy to duplicate subassets by mistake by selecting multiple assets with shift-click in the ProjectView and accidentally selecting subassets too.
Unity already disallows duplicating their own subasset types, like the AudioMixer ones, but we can’t disallow this for our own custom subassets. Using custom subassets may not be very common, but it can be very useful when working with ScriptableObjects. Also, there are popular third-party plugins that use them.
I think maybe Unity can’t remove the ability to duplicate custom subassets by default, because it could break some rare uses for it. But if you made ISubAssetNotDuplicatable available to us, we could prevent our subassets from being duplicated. It’d be very nice.
Thank you.