So we ended up writing our own solution to the asset problem some months ago and whilst we're pretty happy with it, it looks like Addressables is finally solving the problem more natively. Great! I have read the google doc and watched the talks. Whilst I like where it is going I cringed at the current inspector implementation - I'm not sure if that is just a WIP part of the package or not. For our implementation we successfully setup a ResourceRef<T> type that did practically all of the same things except that it gave the inspector enough information to draw the property correctly, as well as ensure the correct asset was being placed, etc etc.
As far as I understood, you can archive type safety by using the attribute AssetReferenceTypeRestriction for which you can specify a list of types to be accepted by the AssetReference field. Code (CSharp): [AssetReferenceTypeRestriction(typeof(TypeA), typeof(TypeB))] public AssetReference Thing;
Yeah, but that kind of sucks for writing code itself - With our solution all areas of the code that interact with the property know what type it is.
there is an AssetReferenceT<T> in the package. you have to create a [Serializable] non-generic subclass for it to be shown in the inspector. the package provides some subclasses for GameObject, Texture, and Sprite